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

bfd_boolean __regparm3
process_attributes(Filedata *filedata,char *public_name,uint proc_type,
                  _func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute,
                  _func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute)

{
  byte bVar1;
  undefined *puVar2;
  char *pcVar3;
  byte *__ptr;
  size_t sVar4;
  uint uVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  uint uVar9;
  int iVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  byte bVar16;
  elf_vma eVar17;
  elf_vma eVar18;
  dwarf_vma dVar19;
  uint local_84;
  uint local_80;
  uint local_74;
  int local_70;
  Elf_Internal_Shdr *local_68;
  uint local_54;
  uint local_50;
  bfd_boolean local_4c;
  uint local_3c;
  uint j;
  undefined4 uStack_14;
  
  puVar2 = PTR_stdout_000b3fd8;
  bVar16 = 0;
  uStack_14 = 0x200a9;
  local_68 = filedata->section_headers;
  if ((filedata->file_header).e_shnum == 0) {
    local_4c = 1;
  }
  else {
    local_4c = 1;
    local_3c = 0;
    do {
      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {
        pcVar3 = (char *)dcgettext(0,"attributes",5);
        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size
                                 ,pcVar3);
        if (__ptr == (byte *)0x0) {
          local_4c = 0;
        }
        else {
          bVar1 = *__ptr;
          if (bVar1 == 0x41) {
            iVar10 = (int)local_68->sh_size;
            local_54 = iVar10 - 1;
            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);
            pbVar8 = __ptr + 1;
            if (local_50 != 0 || local_54 != 0) {
              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {
                do {
                  eVar18 = CONCAT44(local_50,local_54);
                  pbVar7 = pbVar8 + 4;
                  eVar17 = (*byte_get)(pbVar8,4);
                  uVar9 = (uint)(eVar17 >> 0x20);
                  uVar5 = (uint)eVar17;
                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {
                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);
                    error(pcVar3,uVar5,local_54);
                    local_54 = 0;
                    local_50 = 0;
                    local_4c = 0;
                  }
                  else {
                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {
                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);
                      error(pcVar3,uVar5);
                      local_4c = 0;
                      goto LAB_0002018f;
                    }
                    bVar12 = local_54 < uVar5;
                    local_54 = local_54 - uVar5;
                    local_50 = (local_50 - uVar9) - (uint)bVar12;
                    eVar18 = eVar17;
                  }
                  uVar9 = (uint)(eVar18 - 4);
                  iVar10 = (int)(eVar18 - 4 >> 0x20);
                  sVar4 = strnlen((char *)pbVar7,uVar9);
                  uVar5 = sVar4 + 1;
                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {
                    pcVar3 = "Corrupt attribute section name\n";
                    goto LAB_00020443;
                  }
                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);
                  printf(pcVar3);
                  print_symbol(0x7fffffff,(char *)pbVar7);
                  putc(10,*(FILE **)puVar2);
                  bVar15 = public_name == (char *)0x0;
                  bVar12 = false;
                  if (!bVar15) {
                    iVar6 = strcmp((char *)pbVar7,public_name);
                    bVar15 = iVar6 == 0;
                    bVar12 = bVar15;
                  }
                  bVar13 = false;
                  iVar6 = 4;
                  pbVar8 = pbVar7;
                  pbVar11 = &DAT_00076bae;
                  do {
                    if (iVar6 == 0) break;
                    iVar6 = iVar6 + -1;
                    bVar13 = *pbVar8 < *pbVar11;
                    bVar15 = *pbVar8 == *pbVar11;
                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;
                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;
                  } while (bVar15);
                  pbVar8 = pbVar7 + uVar5;
                  local_84 = uVar9 - uVar5;
                  local_80 = iVar10 - (uint)(uVar9 < uVar5);
                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))
                  {
                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {
                      do {
                        bVar1 = *pbVar8;
                        eVar18 = (*byte_get)(pbVar8 + 1,4);
                        uVar9 = (uint)(eVar18 >> 0x20);
                        uVar5 = (uint)eVar18;
                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {
                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);
                          error(pcVar3,uVar5,local_84);
                          local_4c = 0;
                          eVar18 = CONCAT44(local_80,local_84);
                        }
                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {
                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);
                          error(pcVar3,uVar5);
                          local_4c = 0;
                          goto LAB_0002018f;
                        }
                        local_70 = (int)(eVar18 >> 0x20);
                        local_74 = (uint)eVar18;
                        pbVar7 = pbVar8 + local_74;
                        if (__ptr + (int)local_68->sh_size < pbVar7) {
                    /* WARNING: Subroutine does not return */
                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"
                                        ,0x3c37,"process_attributes");
                        }
                        pbVar8 = pbVar8 + 5;
                        if (bVar1 == 2) {
                          pcVar3 = "Section Attributes:";
LAB_000204bb:
                          pcVar3 = (char *)dcgettext(0,pcVar3,5);
                          printf(pcVar3);
                          while( true ) {
                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);
                            pbVar8 = pbVar8 + j;
                            if ((int)dVar19 == 0) break;
                            printf(" %d",(int)dVar19);
                          }
                          putchar(10);
LAB_00020512:
                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)
                             || (!bVar12)) goto LAB_000203f6;
                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))
                          {
                          }
                          if (pbVar7 != pbVar8) {
                            uVar5 = 0x3c5c;
                            goto LAB_0002088f;
                          }
                          bVar12 = true;
                        }
                        else {
                          if (bVar1 == 3) {
                            pcVar3 = "Symbol Attributes:";
                            goto LAB_000204bb;
                          }
                          if (bVar1 == 1) {
                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);
                            printf(pcVar3);
                            goto LAB_00020512;
                          }
                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);
                          printf(pcVar3,(uint)bVar1);
                          bVar12 = false;
LAB_000203f6:
                          if ((!bVar13 && !bVar15) == bVar13) {
                            if (pbVar8 < pbVar7) {
                              do {
                                while( true ) {
                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);
                                  uVar5 = (uint)dVar19;
                                  pbVar8 = pbVar8 + j;
                                  if (uVar5 != 0x20) break;
                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);
                                  pbVar8 = pbVar8 + j;
                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
                                  printf(pcVar3,(int)dVar19);
                                  if (pbVar7 == pbVar8) {
                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);
                                    printf(pcVar3);
                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);
                                    warn(pcVar3);
                                    goto LAB_00020560;
                                  }
                                  if (pbVar8 < pbVar7 + -1) {
                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);
                                    sVar4 = strnlen((char *)pbVar8,
                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));
                                    pbVar8 = pbVar8 + sVar4 + 1;
                                  }
                                  else {
                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);
                                    printf(pcVar3);
                                    pbVar8 = pbVar7;
                                  }
                                  putc(10,*(FILE **)puVar2);
LAB_0002062a:
                                  if (pbVar7 <= pbVar8) goto LAB_00020657;
                                }
                                if ((dVar19 & 2) == 0) {
                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);
                                  goto LAB_0002062a;
                                }
                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);
                              } while (pbVar8 < pbVar7);
                            }
LAB_00020657:
                            if (pbVar7 != pbVar8) {
                              uVar5 = 0x3c64;
LAB_0002088f:
                    /* WARNING: Subroutine does not return */
                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,
                                            "process_attributes");
                            }
                          }
                          else {
                            if (pbVar7 <= pbVar8) goto LAB_0002040a;
                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);
                            printf(pcVar3);
                            display_raw_attribute(pbVar8,pbVar7);
                          }
                        }
LAB_00020560:
                        bVar14 = local_84 < local_74;
                        local_84 = local_84 - local_74;
                        local_80 = (local_80 - local_70) - (uint)bVar14;
                        pbVar8 = pbVar7;
                        if ((local_80 == 0 && local_84 == 0) ||
                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;
                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;
                      } while( true );
                    }
                    pcVar3 = "Unused bytes at end of section\n";
                    goto LAB_00020443;
                  }
LAB_0002040a:
                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;
                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));
              }
              pcVar3 = "Tag section ends prematurely\n";
LAB_00020443:
              pcVar3 = (char *)dcgettext(0,pcVar3,5);
              error(pcVar3);
              local_4c = 0;
            }
          }
          else {
            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"
                                       ,5);
            printf(pcVar3,(uint)bVar1,(uint)bVar1);
            local_4c = 0;
          }
LAB_0002018f:
          free(__ptr);
        }
      }
      local_3c = local_3c + 1;
      local_68 = local_68 + 1;
    } while (local_3c < (filedata->file_header).e_shnum);
  }
  return local_4c;
}



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

undefined4 __regparm3
FUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)

{
  byte bVar1;
  longlong lVar2;
  undefined *puVar3;
  undefined4 uVar4;
  byte *__ptr;
  char *pcVar5;
  size_t sVar6;
  uint uVar7;
  int iVar8;
  byte *pbVar9;
  byte *pbVar10;
  uint uVar11;
  int iVar12;
  byte *pbVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  bool bVar17;
  byte bVar18;
  longlong lVar19;
  undefined8 uVar20;
  uint local_84;
  uint local_80;
  uint local_74;
  int local_70;
  int local_68;
  uint local_54;
  uint local_50;
  undefined4 local_4c;
  uint local_3c;
  int local_20 [3];
  undefined4 uStack_14;
  
  puVar3 = PTR_stdout_000b3fd8;
  bVar18 = 0;
  uStack_14 = 0x200a9;
  local_68 = *(int *)(param_1 + 0x5c);
  if (*(int *)(param_1 + 0x54) == 0) {
    local_4c = 1;
  }
  else {
    local_4c = 1;
    local_3c = 0;
    do {
      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {
        uVar4 = dcgettext(0,"attributes",5);
        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),
                                     *(undefined4 *)(local_68 + 0x24),uVar4);
        if (__ptr == (byte *)0x0) {
          local_4c = 0;
        }
        else {
          bVar1 = *__ptr;
          if (bVar1 == 0x41) {
            local_54 = *(int *)(local_68 + 0x20) - 1;
            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);
            pbVar10 = __ptr + 1;
            if (local_50 != 0 || local_54 != 0) {
              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {
                do {
                  lVar2 = CONCAT44(local_50,local_54);
                  pbVar9 = pbVar10 + 4;
                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);
                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);
                  uVar7 = (uint)lVar19;
                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {
                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);
                    error(uVar4,uVar7,local_54);
                    local_54 = 0;
                    local_50 = 0;
                    local_4c = 0;
                  }
                  else {
                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {
                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);
                      error(uVar4,uVar7);
                      local_4c = 0;
                      goto LAB_0002018f;
                    }
                    bVar14 = local_54 < uVar7;
                    local_54 = local_54 - uVar7;
                    local_50 = (local_50 - uVar11) - (uint)bVar14;
                    lVar2 = lVar19;
                  }
                  uVar11 = (uint)(lVar2 + -4);
                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);
                  sVar6 = strnlen((char *)pbVar9,uVar11);
                  uVar7 = sVar6 + 1;
                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {
                    pcVar5 = "Corrupt attribute section name\n";
                    goto LAB_00020443;
                  }
                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);
                  printf(pcVar5);
                  FUN_0001fd20();
                  putc(10,*(FILE **)puVar3);
                  bVar17 = param_2 == (char *)0x0;
                  bVar14 = false;
                  if (!bVar17) {
                    iVar8 = strcmp((char *)pbVar9,param_2);
                    bVar17 = iVar8 == 0;
                    bVar14 = bVar17;
                  }
                  bVar15 = false;
                  iVar8 = 4;
                  pbVar10 = pbVar9;
                  pbVar13 = &DAT_00076bae;
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar15 = *pbVar10 < *pbVar13;
                    bVar17 = *pbVar10 == *pbVar13;
                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;
                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;
                  } while (bVar17);
                  pbVar10 = pbVar9 + uVar7;
                  local_84 = uVar11 - uVar7;
                  local_80 = iVar12 - (uint)(uVar11 < uVar7);
                  if ((local_80 != 0 || local_84 != 0) &&
                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {
                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {
                      do {
                        bVar1 = *pbVar10;
                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);
                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);
                        uVar7 = (uint)uVar20;
                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {
                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);
                          error(uVar4,uVar7,local_84);
                          local_4c = 0;
                          uVar20 = CONCAT44(local_80,local_84);
                        }
                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {
                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);
                          error(uVar4,uVar7);
                          local_4c = 0;
                          goto LAB_0002018f;
                        }
                        local_70 = (int)((ulonglong)uVar20 >> 0x20);
                        local_74 = (uint)uVar20;
                        pbVar9 = pbVar10 + local_74;
                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {
                    /* WARNING: Subroutine does not return */
                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"
                                        ,0x3c37,"process_attributes");
                        }
                        pbVar10 = pbVar10 + 5;
                        if (bVar1 == 2) {
                          pcVar5 = "Section Attributes:";
LAB_000204bb:
                          pcVar5 = (char *)dcgettext(0,pcVar5,5);
                          printf(pcVar5);
                          while( true ) {
                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                            pbVar10 = pbVar10 + local_20[0];
                            if (iVar12 == 0) break;
                            printf(" %d",iVar12);
                          }
                          putchar(10);
LAB_00020512:
                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;
                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {
                          }
                          if (pbVar9 != pbVar10) {
                            uVar7 = 0x3c5c;
                            goto LAB_0002088f;
                          }
                          bVar14 = true;
                        }
                        else {
                          if (bVar1 == 3) {
                            pcVar5 = "Symbol Attributes:";
                            goto LAB_000204bb;
                          }
                          if (bVar1 == 1) {
                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);
                            printf(pcVar5);
                            goto LAB_00020512;
                          }
                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);
                          printf(pcVar5,(uint)bVar1);
                          bVar14 = false;
LAB_000203f6:
                          if ((!bVar15 && !bVar17) == bVar15) {
                            if (pbVar10 < pbVar9) {
                              do {
                                while( true ) {
                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                                  pbVar10 = pbVar10 + local_20[0];
                                  if (uVar7 != 0x20) break;
                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                                  pbVar10 = pbVar10 + local_20[0];
                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
                                  printf(pcVar5,uVar4);
                                  if (pbVar9 == pbVar10) {
                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);
                                    printf(pcVar5);
                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);
                                    warn(uVar4);
                                    goto LAB_00020560;
                                  }
                                  if (pbVar10 < pbVar9 + -1) {
                                    FUN_0001fd20();
                                    sVar6 = strnlen((char *)pbVar10,
                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));
                                    pbVar10 = pbVar10 + sVar6 + 1;
                                  }
                                  else {
                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);
                                    printf(pcVar5);
                                    pbVar10 = pbVar9;
                                  }
                                  putc(10,*(FILE **)puVar3);
LAB_0002062a:
                                  if (pbVar9 <= pbVar10) goto LAB_00020657;
                                }
                                if ((uVar7 & 2) == 0) {
                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);
                                  goto LAB_0002062a;
                                }
                                pbVar10 = (byte *)FUN_0001ff40();
                              } while (pbVar10 < pbVar9);
                            }
LAB_00020657:
                            if (pbVar9 != pbVar10) {
                              uVar7 = 0x3c64;
LAB_0002088f:
                    /* WARNING: Subroutine does not return */
                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,
                                            "process_attributes");
                            }
                          }
                          else {
                            if (pbVar9 <= pbVar10) goto LAB_0002040a;
                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);
                            printf(pcVar5);
                            FUN_0001f5b0();
                          }
                        }
LAB_00020560:
                        bVar16 = local_84 < local_74;
                        local_84 = local_84 - local_74;
                        local_80 = (local_80 - local_70) - (uint)bVar16;
                        pbVar10 = pbVar9;
                        if ((local_80 == 0 && local_84 == 0) ||
                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;
                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;
                      } while( true );
                    }
                    pcVar5 = "Unused bytes at end of section\n";
                    goto LAB_00020443;
                  }
LAB_0002040a:
                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;
                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));
              }
              pcVar5 = "Tag section ends prematurely\n";
LAB_00020443:
              uVar4 = dcgettext(0,pcVar5,5);
              error(uVar4);
              local_4c = 0;
            }
          }
          else {
            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"
                                       ,5);
            printf(pcVar5,(uint)bVar1,(uint)bVar1);
            local_4c = 0;
          }
LAB_0002018f:
          free(__ptr);
        }
      }
      local_3c = local_3c + 1;
      local_68 = local_68 + 0x48;
    } while (local_3c < *(uint *)(param_1 + 0x54));
  }
  return local_4c;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x93f57
SUB ESP,0x7c
MOV ESI,dword ptr [EAX + 0x5c]
MOV EBP,dword ptr [EAX + 0x54]
MOV dword ptr [ESP + 0x24],ESI
TEST EBP,EBP
JZ 0x00020824
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [EBX + 0xffffffd8]
MOV dword ptr [ESP + 0x5c],ECX
MOV dword ptr [ESP + 0x58],EDX
MOV dword ptr [ESP + 0x40],0x1
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x0002010d
CMP EAX,dword ptr [ESP + 0x5c]
JZ 0x0002011b
MOV ESI,dword ptr [ESP + 0x54]
ADD dword ptr [ESP + 0x50],0x1
ADD dword ptr [ESP + 0x24],0x48
MOV EAX,dword ptr [ESP + 0x50]
CMP dword ptr [ESI + 0x54],EAX
JBE 0x0002082c
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x6ffffff5
JNZ 0x000200ec
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2b71]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ESI,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESI + 0x18]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [ESI + 0x24]
PUSH dword ptr [ESI + 0x20]
PUSH 0x0
PUSH 0x1
MOV EDX,dword ptr [ESP + 0x74]
CALL 0x0001bf90
MOV dword ptr [ESP + 0x48],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00020800
MOVZX EAX,byte ptr [EAX]
CMP AL,0x41
JZ 0x000201a3
SUB ESP,0x4
MOVZX ESI,AL
LEA EAX,[EBX + 0xfffcd878]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH ESI
PUSH ESI
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
CALL 0x000130a0
ADD ESP,0x10
JMP 0x000200f2
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EAX + 0x20]
MOV ECX,EDX
MOV dword ptr [ESP + 0xc],EDX
MOV EDX,EAX
ADD EDX,-0x1
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x28]
ADC ECX,-0x1
MOV ESI,EDX
MOV dword ptr [ESP + 0x38],EDX
MOV EDX,ECX
MOV dword ptr [ESP + 0x3c],ECX
LEA EBP,[EAX + 0x1]
OR EDX,ESI
JZ 0x0002018f
MOV EAX,0x4
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,ECX
JNC 0x00020438
LEA EAX,[EBX + 0x5dd8]
MOV dword ptr [ESP + 0x30],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH 0x4
PUSH EBP
MOV EAX,dword ptr [ESP + 0x40]
ADD EBP,0x4
CALL dword ptr [EAX]
ADD ESP,0x10
MOV ESI,EAX
MOV EDI,EDX
MOV EAX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x3c]
CMP EAX,ESI
MOV EAX,EDX
SBB EAX,EDI
JC 0x00020788
MOV EAX,0x4
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,EDI
JNC 0x00020838
SUB dword ptr [ESP + 0x38],ESI
SBB dword ptr [ESP + 0x3c],EDI
ADD ESI,-0x4
ADC EDI,-0x1
MOV dword ptr [ESP + 0x10],ESI
SUB ESP,0x8
MOV dword ptr [ESP + 0x1c],EDI
PUSH ESI
PUSH EBP
CALL 0x00013310
ADD ESP,0x10
ADD EAX,0x1
MOV dword ptr [ESP + 0x18],EAX
JZ 0x0002080d
XOR EDX,EDX
MOV dword ptr [ESP + 0x8],EAX
CMP EAX,ESI
MOV EAX,EDX
MOV dword ptr [ESP + 0xc],EDX
SBB EAX,EDI
JNC 0x0002080d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2b9a]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
MOV EDX,EBP
MOV EAX,0x7fffffff
CALL 0x0001fd20
POP EAX
POP EDX
MOV EAX,dword ptr [ESP + 0x54]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x2c],0x0
TEST EAX,EAX
JZ 0x000202de
SUB ESP,0x8
PUSH EAX
PUSH EBP
CALL 0x00013050
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x2c],EAX
MOV ESI,EBP
LEA EDI,[EBX + 0xfffc2bae]
MOV ECX,0x4
CMPSB.REPE ES:EDI,ESI
MOV ESI,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x14]
SETA AL
SBB AL,0x0
ADD EBP,dword ptr [ESP + 0x18]
SUB ESI,dword ptr [ESP + 0x8]
SBB EDI,dword ptr [ESP + 0xc]
MOVSX EAX,AL
MOV dword ptr [ESP + 0x8],ESI
MOV EDX,EDI
MOV dword ptr [ESP + 0x34],EAX
OR EDX,ESI
MOV dword ptr [ESP + 0xc],EDI
JZ 0x0002040a
MOV ECX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x28]
ADD EAX,dword ptr [ECX + 0x20]
CMP EBP,EAX
JNC 0x0002040a
MOV EAX,0x5
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,EDI
JNC 0x000205b5
LEA EAX,[EBX + 0xfffc2c04]
MOV dword ptr [ESP + 0x48],EAX
SUB ESP,0x8
LEA EAX,[EBP + 0x1]
MOVZX ESI,byte ptr [EBP]
PUSH 0x4
PUSH EAX
MOV EAX,dword ptr [ESP + 0x40]
CALL dword ptr [EAX]
MOV ECX,EDX
MOV dword ptr [ESP + 0x28],EAX
MOV EDX,EAX
MOV dword ptr [ESP + 0x2c],ECX
ADD ESP,0x10
CMP dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xc]
SBB EAX,ECX
JC 0x00020468
MOV EAX,0x5
MOV EDI,EDX
CMP EAX,EDX
MOV EAX,0x0
SBB EAX,ECX
JNC 0x000207d1
MOV ECX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x28]
ADD EDI,EBP
ADD EAX,dword ptr [ECX + 0x20]
CMP EDI,EAX
JA 0x00020864
MOV EAX,ESI
ADD EBP,0x5
CMP AL,0x2
JZ 0x000204b0
CMP AL,0x3
JZ 0x000205f0
CMP AL,0x1
JZ 0x000205c8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2bea]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
MOV ECX,ESI
MOVZX ESI,CL
PUSH ESI
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],0x0
MOV ESI,dword ptr [ESP + 0x34]
TEST ESI,ESI
JZ 0x00020600
CMP EDI,EBP
JA 0x000206f8
MOV EDI,dword ptr [ESP + 0x3c]
MOV ESI,dword ptr [ESP + 0x38]
MOV EDX,EDI
OR EDX,ESI
JZ 0x0002018f
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,0x4
MOV ECX,dword ptr [ESP + 0x3c]
CMP EAX,EDX
MOV EAX,0x0
SBB EAX,ECX
JC 0x000201f8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2b7c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002018f
MOV EDI,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xfffcd938]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00020398
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2bc3]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
LEA EAX,[EBX + 0xfffdf84e]
LEA ESI,[ESP + 0x6c]
MOV dword ptr [ESP + 0x10],EAX
JMP 0x000204f0
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00013060
ADD ESP,0x10
PUSH EDI
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x0004f990
ADD EBP,dword ptr [ESP + 0x7c]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000204e0
SUB ESP,0xc
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x90]
TEST EAX,EAX
JZ 0x000203f6
MOV EAX,dword ptr [ESP + 0x2c]
TEST EAX,EAX
JZ 0x000203f6
CMP EBP,EDI
JNC 0x00020550
MOV ESI,dword ptr [ESP + 0x90]
MOV EAX,EBP
LEA ESI,[ESI]
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL ESI
ADD ESP,0x10
CMP EDI,EAX
JA 0x00020540
MOV EBP,EAX
CMP EDI,EBP
JNZ 0x00020883
MOV dword ptr [ESP + 0x2c],0x1
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x1c]
SUB dword ptr [ESP + 0x8],EAX
SBB dword ptr [ESP + 0xc],EDX
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JZ 0x0002081d
MOV ECX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x28]
MOV EBP,EDI
ADD EAX,dword ptr [ECX + 0x20]
CMP EDI,EAX
JNC 0x0002040a
MOV ESI,dword ptr [ESP + 0x8]
MOV EAX,0x5
MOV EDI,dword ptr [ESP + 0xc]
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,EDI
JC 0x00020350
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcd918]
PUSH 0x5
JMP 0x00020443
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2bb2]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x00020512
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2bd7]
PUSH 0x5
JMP 0x000204bb
CMP EDI,EBP
JBE 0x00020657
LEA EAX,[EDI + -0x1]
LEA ESI,[ESP + 0x6c]
MOV dword ptr [ESP + 0x44],EAX
JMP 0x0002062e
SUB ESP,0x4
PUSH EDI
PUSH EAX
PUSH EBP
CALL dword ptr [ESP + 0xa4]
MOV EBP,EAX
ADD ESP,0x10
CMP EDI,EBP
JBE 0x00020657
PUSH EDI
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x0004f990
ADD EBP,dword ptr [ESP + 0x7c]
ADD ESP,0x10
CMP EAX,0x20
JZ 0x00020670
TEST AL,0x2
JZ 0x00020618
MOV EDX,EBP
MOV ECX,EDI
CALL 0x0001ff40
MOV EBP,EAX
CMP EDI,EBP
JA 0x0002062e
CMP EDI,EBP
JZ 0x00020560
LEA EAX,[EBX + 0xfffda3a4]
PUSH EAX
PUSH 0x3c64
JMP 0x0002088f
PUSH EDI
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x0004f990
ADD EBP,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0xc
PUSH 0x5
PUSH dword ptr [ESP + 0x50]
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
CMP EDI,EBP
JZ 0x0002074a
CMP EBP,dword ptr [ESP + 0x44]
JNC 0x00020728
MOV ECX,EDI
MOV EDX,EBP
SUB ECX,EBP
SUB ECX,0x1
MOV EAX,ECX
MOV dword ptr [ESP + 0x10],ECX
CALL 0x0001fd20
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x18]
PUSH ECX
PUSH EBP
CALL 0x00013310
ADD ESP,0x10
LEA EBP,[EBP + EAX*0x1 + 0x1]
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x54]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
ADD ESP,0x10
JMP 0x0002062a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2c3e]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
MOV EDX,EDI
MOV EAX,EBP
CALL 0x0001f5b0
ADD ESP,0x10
JMP 0x00020560
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2aee]
MOV EBP,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x000206d9
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2c19]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBX + 0xfffc2c24]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x00020560
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcd8b0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x3c]
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002023e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcd95c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDI
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002018f
MOV dword ptr [ESP + 0x40],0x0
JMP 0x000200f2
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcd8f8]
PUSH 0x5
JMP 0x00020443
MOV EBP,EDI
JMP 0x0002040a
MOV dword ptr [ESP + 0x40],0x1
MOV EAX,dword ptr [ESP + 0x40]
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcd8d0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002018f
LEA EAX,[EBX + 0xfffda3a4]
PUSH EAX
LEA EAX,[EBX + 0xfffc2a91]
PUSH 0x3c37
PUSH EAX
LEA EAX,[EBX + 0xfffcd97c]
PUSH EAX
CALL 0x00013420
LEA EAX,[EBX + 0xfffda3a4]
PUSH EAX
PUSH 0x3c5c
LEA EAX,[EBX + 0xfffc2a91]
PUSH EAX
LEA EAX,[EBX + 0xfffc2bfb]
PUSH EAX
CALL 0x00013420
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3\nFUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}\n\n" comment (function_definition "undefined4 __regparm3\nFUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" identifier (parameter_list "(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_stdout_000b3fd8;" (assignment_expression "puVar3 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x200a9;" (assignment_expression "uStack_14 = 0x200a9" identifier = number_literal) ;) (expression_statement "local_68 = *(int *)(param_1 + 0x5c);" (assignment_expression "local_68 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_4c = 1;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) }) (else_clause "else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" else (compound_statement "{\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));" do (compound_statement "{\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    }" { (if_statement "if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" if (parenthesized_expression "((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3))" ( (binary_expression "(*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)" (parenthesized_expression "(*(int *)(local_68 + 4) == 0x6ffffff5)" ( (binary_expression "*(int *)(local_68 + 4) == 0x6ffffff5" (pointer_expression "*(int *)(local_68 + 4)" * (cast_expression "(int *)(local_68 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 4)" ( (binary_expression "local_68 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(local_68 + 4) == param_3)" ( (binary_expression "*(int *)(local_68 + 4) == param_3" (pointer_expression "*(int *)(local_68 + 4)" * (cast_expression "(int *)(local_68 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 4)" ( (binary_expression "local_68 + 4" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" { (expression_statement "uVar4 = dcgettext(0,"attributes",5);" (assignment_expression "uVar4 = dcgettext(0,"attributes",5)" identifier = (call_expression "dcgettext(0,"attributes",5)" identifier (argument_list "(0,"attributes",5)" ( number_literal , (string_literal ""attributes"" " string_content ") , number_literal )))) ;) (expression_statement "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);" (assignment_expression "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" identifier = (cast_expression "(byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" identifier (argument_list "(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(local_68 + 0x20)" * (cast_expression "(undefined4 *)(local_68 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(local_68 + 0x24)" * (cast_expression "(undefined4 *)(local_68 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x24)" ( (binary_expression "local_68 + 0x24" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" if (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = 0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" else (compound_statement "{\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" { (expression_statement "bVar1 = *__ptr;" (assignment_expression "bVar1 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (if_statement "if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" if (parenthesized_expression "(bVar1 == 0x41)" ( (binary_expression "bVar1 == 0x41" identifier == number_literal) )) (compound_statement "{\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }" { (expression_statement "local_54 = *(int *)(local_68 + 0x20) - 1;" (assignment_expression "local_54 = *(int *)(local_68 + 0x20) - 1" identifier = (binary_expression "*(int *)(local_68 + 0x20) - 1" (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);" (assignment_expression "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" identifier = (binary_expression "*(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" (binary_expression "*(int *)(local_68 + 0x24) + -1" (pointer_expression "*(int *)(local_68 + 0x24)" * (cast_expression "(int *)(local_68 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x24)" ( (binary_expression "local_68 + 0x24" identifier + number_literal) )))) + number_literal) + (call_expression "(uint)(*(int *)(local_68 + 0x20) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(local_68 + 0x20) != 0)" ( (binary_expression "*(int *)(local_68 + 0x20) != 0" (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) != number_literal) ))))) ;) (expression_statement "pbVar10 = __ptr + 1;" (assignment_expression "pbVar10 = __ptr + 1" identifier = (binary_expression "__ptr + 1" identifier + number_literal)) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" { (if_statement "if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" if (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) (compound_statement "{\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" { (do_statement "do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));" do (compound_statement "{\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                }" { (expression_statement "lVar2 = CONCAT44(local_50,local_54);" (assignment_expression "lVar2 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (expression_statement "pbVar9 = pbVar10 + 4;" (assignment_expression "pbVar9 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) (expression_statement "lVar19 = (*DAT_000b9dd8)(pbVar10,4);" (assignment_expression "lVar19 = (*DAT_000b9dd8)(pbVar10,4)" identifier = (call_expression "(*DAT_000b9dd8)(pbVar10,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pbVar10,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (uint)((ulonglong)lVar19 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)lVar19 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)lVar19;" (assignment_expression "uVar7 = (uint)lVar19" identifier = (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" if (parenthesized_expression "(local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7))" ( (binary_expression "local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 < uVar11" identifier < identifier) || (binary_expression "local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 - uVar11" identifier - identifier) < (call_expression "(uint)(local_54 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar7)" ( (binary_expression "local_54 < uVar7" identifier < identifier) ))))) )) (compound_statement "{\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }" { (expression_statement "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier = (call_expression "dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad attribute length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad attribute length (%u > %u)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7,local_54);" (call_expression "error(uVar4,uVar7,local_54)" identifier (argument_list "(uVar4,uVar7,local_54)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" else (compound_statement "{\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" { (if_statement "if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" if (parenthesized_expression "(uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11)" ( (binary_expression "uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" identifier == number_literal) && (binary_expression "(uint)(4 < uVar7) <= -uVar11" (call_expression "(uint)(4 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < uVar7)" ( (binary_expression "4 < uVar7" number_literal < identifier) ))) <= (unary_expression "-uVar11" - identifier))) )) (compound_statement "{\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" { (expression_statement "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5)" identifier = (call_expression "dcgettext(0,"Attribute length of %u is too small\n",5)" identifier (argument_list "(0,"Attribute length of %u is too small\n",5)" ( number_literal , (string_literal ""Attribute length of %u is too small\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" identifier (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })) (expression_statement "bVar14 = local_54 < uVar7;" (assignment_expression "bVar14 = local_54 < uVar7" identifier = (binary_expression "local_54 < uVar7" identifier < identifier)) ;) (expression_statement "local_54 = local_54 - uVar7;" (assignment_expression "local_54 = local_54 - uVar7" identifier = (binary_expression "local_54 - uVar7" identifier - identifier)) ;) (expression_statement "local_50 = (local_50 - uVar11) - (uint)bVar14;" (assignment_expression "local_50 = (local_50 - uVar11) - (uint)bVar14" identifier = (binary_expression "(local_50 - uVar11) - (uint)bVar14" (parenthesized_expression "(local_50 - uVar11)" ( (binary_expression "local_50 - uVar11" identifier - identifier) )) - (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "lVar2 = lVar19;" (assignment_expression "lVar2 = lVar19" identifier = identifier) ;) }))) (expression_statement "uVar11 = (uint)(lVar2 + -4);" (assignment_expression "uVar11 = (uint)(lVar2 + -4)" identifier = (call_expression "(uint)(lVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar2 + -4)" ( (binary_expression "lVar2 + -4" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);" (assignment_expression "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(lVar2 + -4) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar2 + -4) >> 0x20)" ( (binary_expression "(ulonglong)(lVar2 + -4) >> 0x20" (call_expression "(ulonglong)(lVar2 + -4)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar2 + -4)" ( (binary_expression "lVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "sVar6 = strnlen((char *)pbVar9,uVar11);" (assignment_expression "sVar6 = strnlen((char *)pbVar9,uVar11)" identifier = (call_expression "strnlen((char *)pbVar9,uVar11)" identifier (argument_list "((char *)pbVar9,uVar11)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "uVar7 = sVar6 + 1;" (assignment_expression "uVar7 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12))" ( (binary_expression "(uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" ( (binary_expression "iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12" (binary_expression "iVar12 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar7 < uVar11) <= (uint)-iVar12" (call_expression "(uint)(uVar7 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar11)" ( (binary_expression "uVar7 < uVar11" identifier < identifier) ))) <= (binary_expression "(uint)-iVar12" (parenthesized_expression "(uint)" ( identifier )) - identifier))) ))) )) (compound_statement "{\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" { (expression_statement "pcVar5 = "Corrupt attribute section name\n";" (assignment_expression "pcVar5 = "Corrupt attribute section name\n"" identifier = (string_literal ""Corrupt attribute section name\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (expression_statement "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Attribute Section: ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Attribute Section: ",5)" identifier (argument_list "(0,"Attribute Section: ",5)" ( number_literal , (string_literal ""Attribute Section: "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "bVar17 = param_2 == (char *)0x0;" (assignment_expression "bVar17 = param_2 == (char *)0x0" identifier = (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (if_statement "if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" { (expression_statement "iVar8 = strcmp((char *)pbVar9,param_2);" (assignment_expression "iVar8 = strcmp((char *)pbVar9,param_2)" identifier = (call_expression "strcmp((char *)pbVar9,param_2)" identifier (argument_list "((char *)pbVar9,param_2)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "bVar17 = iVar8 == 0;" (assignment_expression "bVar17 = iVar8 == 0" identifier = (binary_expression "iVar8 == 0" identifier == number_literal)) ;) (expression_statement "bVar14 = bVar17;" (assignment_expression "bVar14 = bVar17" identifier = identifier) ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar13 = &DAT_00076bae;" (assignment_expression "pbVar13 = &DAT_00076bae" identifier = (pointer_expression "&DAT_00076bae" & identifier)) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar13;" (assignment_expression "bVar15 = *pbVar10 < *pbVar13" identifier = (binary_expression "*pbVar10 < *pbVar13" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar13;" (assignment_expression "bVar17 = *pbVar10 == *pbVar13" identifier = (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "pbVar10 = pbVar9 + uVar7;" (assignment_expression "pbVar10 = pbVar9 + uVar7" identifier = (binary_expression "pbVar9 + uVar7" identifier + identifier)) ;) (expression_statement "local_84 = uVar11 - uVar7;" (assignment_expression "local_84 = uVar11 - uVar7" identifier = (binary_expression "uVar11 - uVar7" identifier - identifier)) ;) (expression_statement "local_80 = iVar12 - (uint)(uVar11 < uVar7);" (assignment_expression "local_80 = iVar12 - (uint)(uVar11 < uVar7)" identifier = (binary_expression "iVar12 - (uint)(uVar11 < uVar7)" identifier - (call_expression "(uint)(uVar11 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar7)" ( (binary_expression "uVar11 < uVar7" identifier < identifier) ))))) ;) (if_statement "if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20)))" ( (binary_expression "(local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))" (parenthesized_expression "(local_80 != 0 || local_84 != 0)" ( (binary_expression "local_80 != 0 || local_84 != 0" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "local_84 != 0" identifier != number_literal)) )) && (parenthesized_expression "(pbVar10 < __ptr + *(int *)(local_68 + 0x20))" ( (binary_expression "pbVar10 < __ptr + *(int *)(local_68 + 0x20)" identifier < (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" { (if_statement "if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" if (parenthesized_expression "(local_80 != 0 || -local_80 < (uint)(5 < local_84))" ( (binary_expression "local_80 != 0 || -local_80 < (uint)(5 < local_84)" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "-local_80 < (uint)(5 < local_84)" (unary_expression "-local_80" - identifier) < (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))))) )) (compound_statement "{\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" { (do_statement "do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );" do (compound_statement "{\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);" (assignment_expression "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4)" identifier = (call_expression "(*DAT_000b9dd8)(pbVar10 + 1,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pbVar10 + 1,4)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar11 = (uint)((ulonglong)uVar20 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)uVar20 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)uVar20;" (assignment_expression "uVar7 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7))" ( (binary_expression "local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 < uVar11" identifier < identifier) || (binary_expression "local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 - uVar11" identifier - identifier) < (call_expression "(uint)(local_84 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < uVar7)" ( (binary_expression "local_84 < uVar7" identifier < identifier) ))))) )) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }" { (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier = (call_expression "dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u > %u)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7,local_84);" (call_expression "error(uVar4,uVar7,local_84)" identifier (argument_list "(uVar4,uVar7,local_84)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar20 = CONCAT44(local_80,local_84);" (assignment_expression "uVar20 = CONCAT44(local_80,local_84)" identifier = (call_expression "CONCAT44(local_80,local_84)" identifier (argument_list "(local_80,local_84)" ( identifier , identifier )))) ;) }) (else_clause "else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" else (if_statement "if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11)" ( (binary_expression "uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < uVar7) <= -uVar11" (call_expression "(uint)(5 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < uVar7)" ( (binary_expression "5 < uVar7" number_literal < identifier) ))) <= (unary_expression "-uVar11" - identifier))) )) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" { (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier = (call_expression "dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u < 6)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u < 6)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" identifier (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })))) (expression_statement "local_70 = (int)((ulonglong)uVar20 >> 0x20);" (assignment_expression "local_70 = (int)((ulonglong)uVar20 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar20;" (assignment_expression "local_74 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = pbVar10 + local_74;" (assignment_expression "pbVar9 = pbVar10 + local_74" identifier = (binary_expression "pbVar10 + local_74" identifier + identifier)) ;) (if_statement "if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" if (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) < pbVar9)" ( (binary_expression "__ptr + *(int *)(local_68 + 0x20) < pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" { comment (expression_statement "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");" (call_expression "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" identifier (argument_list "("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" ( (string_literal ""end <= contents + sect->sh_size"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""process_attributes"" " string_content ") ))) ;) })) (expression_statement "pbVar10 = pbVar10 + 5;" (assignment_expression "pbVar10 = pbVar10 + 5" identifier = (binary_expression "pbVar10 + 5" identifier + number_literal)) ;) (if_statement "if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" if (parenthesized_expression "(bVar1 == 2)" ( (binary_expression "bVar1 == 2" identifier == number_literal) )) (compound_statement "{\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }" { (expression_statement "pcVar5 = "Section Attributes:";" (assignment_expression "pcVar5 = "Section Attributes:"" identifier = (string_literal ""Section Attributes:"" " string_content ")) ;) (labeled_statement "LAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (while_statement "while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" { (expression_statement "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "printf(" %d",iVar12);" (call_expression "printf(" %d",iVar12)" identifier (argument_list "(" %d",iVar12)" ( (string_literal "" %d"" " string_content ") , identifier ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" statement_identifier : (if_statement "if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" if (parenthesized_expression "((param_4 == (code *)0x0) || (!bVar14))" ( (binary_expression "(param_4 == (code *)0x0) || (!bVar14)" (parenthesized_expression "(param_4 == (code *)0x0)" ( (binary_expression "param_4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) ))) )) (goto_statement "goto LAB_000203f6;" goto statement_identifier ;))) (for_statement "for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }" for ( ; (binary_expression "pbVar10 < pbVar9" identifier < identifier) ; (assignment_expression "pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)" identifier = (cast_expression "(byte *)(*param_4)(pbVar10,pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*param_4)(pbVar10,pbVar9)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(pbVar10,pbVar9)" ( identifier , identifier ))))) ) (compound_statement "{\n                          }" { })) (if_statement "if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" if (parenthesized_expression "(pbVar9 != pbVar10)" ( (binary_expression "pbVar9 != pbVar10" identifier != identifier) )) (compound_statement "{\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" { (expression_statement "uVar7 = 0x3c5c;" (assignment_expression "uVar7 = 0x3c5c" identifier = number_literal) ;) (goto_statement "goto LAB_0002088f;" goto statement_identifier ;) })) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" identifier = true) ;) }) (else_clause "else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" else (compound_statement "{\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" { (if_statement "if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" { (expression_statement "pcVar5 = "Symbol Attributes:";" (assignment_expression "pcVar5 = "Symbol Attributes:"" identifier = (string_literal ""Symbol Attributes:"" " string_content ")) ;) (goto_statement "goto LAB_000204bb;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"File Attributes\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"File Attributes\n",5)" identifier (argument_list "(0,"File Attributes\n",5)" ( number_literal , (string_literal ""File Attributes\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (goto_statement "goto LAB_00020512;" goto statement_identifier ;) })) (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown tag: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown tag: %d\n",5)" identifier (argument_list "(0,"Unknown tag: %d\n",5)" ( number_literal , (string_literal ""Unknown tag: %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1)" identifier (argument_list "(pcVar5,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (labeled_statement "LAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" statement_identifier : (if_statement "if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" if (parenthesized_expression "((!bVar15 && !bVar17) == bVar15)" ( (binary_expression "(!bVar15 && !bVar17) == bVar15" (parenthesized_expression "(!bVar15 && !bVar17)" ( (binary_expression "!bVar15 && !bVar17" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (compound_statement "{\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }" { (if_statement "if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" if (parenthesized_expression "(pbVar10 < pbVar9)" ( (binary_expression "pbVar10 < pbVar9" identifier < identifier) )) (compound_statement "{\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" { (do_statement "do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);" do (compound_statement "{\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              }" { (while_statement "while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" { (expression_statement "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (uVar7 != 0x20) break;" if (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,uVar4);" (call_expression "printf(pcVar5,uVar4)" identifier (argument_list "(pcVar5,uVar4)" ( identifier , identifier ))) ;) (if_statement "if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" if (parenthesized_expression "(pbVar9 == pbVar10)" ( (binary_expression "pbVar9 == pbVar10" identifier == identifier) )) (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>\n",5)" identifier (argument_list "(0,"<corrupt>\n",5)" ( number_literal , (string_literal ""<corrupt>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);" (assignment_expression "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5)" identifier = (call_expression "dcgettext(0,"corrupt vendor attribute\n",5)" identifier (argument_list "(0,"corrupt vendor attribute\n",5)" ( number_literal , (string_literal ""corrupt vendor attribute\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00020560;" goto statement_identifier ;) })) (if_statement "if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" if (parenthesized_expression "(pbVar10 < pbVar9 + -1)" ( (binary_expression "pbVar10 < pbVar9 + -1" identifier < (binary_expression "pbVar9 + -1" identifier + number_literal)) )) (compound_statement "{\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }" { (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));" (assignment_expression "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" identifier = (call_expression "strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" identifier (argument_list "((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(pbVar9 + (-1 - (int)pbVar10))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pbVar9 + (-1 - (int)pbVar10))" ( (binary_expression "pbVar9 + (-1 - (int)pbVar10)" identifier + (parenthesized_expression "(-1 - (int)pbVar10)" ( (binary_expression "-1 - (int)pbVar10" number_literal - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) )))) ;) (expression_statement "pbVar10 = pbVar10 + sVar6 + 1;" (assignment_expression "pbVar10 = pbVar10 + sVar6 + 1" identifier = (binary_expression "pbVar10 + sVar6 + 1" (binary_expression "pbVar10 + sVar6" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" else (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) }))) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (labeled_statement "LAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;" statement_identifier : (if_statement "if (pbVar9 <= pbVar10) goto LAB_00020657;" if (parenthesized_expression "(pbVar9 <= pbVar10)" ( (binary_expression "pbVar9 <= pbVar10" identifier <= identifier) )) (goto_statement "goto LAB_00020657;" goto statement_identifier ;))) })) (if_statement "if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" if (parenthesized_expression "((uVar7 & 2) == 0)" ( (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" { (expression_statement "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);" (assignment_expression "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9)" identifier = (cast_expression "(byte *)(*param_5)(pbVar10,uVar7,pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*param_5)(pbVar10,uVar7,pbVar9)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(pbVar10,uVar7,pbVar9)" ( identifier , identifier , identifier ))))) ;) (goto_statement "goto LAB_0002062a;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)FUN_0001ff40();" (assignment_expression "pbVar10 = (byte *)FUN_0001ff40()" identifier = (cast_expression "(byte *)FUN_0001ff40()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(pbVar10 < pbVar9)" ( (binary_expression "pbVar10 < pbVar9" identifier < identifier) )) ;) })) (labeled_statement "LAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" statement_identifier : (if_statement "if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" if (parenthesized_expression "(pbVar9 != pbVar10)" ( (binary_expression "pbVar9 != pbVar10" identifier != identifier) )) (compound_statement "{\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" { (expression_statement "uVar7 = 0x3c64;" (assignment_expression "uVar7 = 0x3c64" identifier = number_literal) ;) (labeled_statement "LAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" statement_identifier : comment (expression_statement "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" (call_expression "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" identifier (argument_list "("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" ( (string_literal ""p == end"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , identifier , (string_literal ""process_attributes"" " string_content ") ))) ;)) }))) }) (else_clause "else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" else (compound_statement "{\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" { (if_statement "if (pbVar9 <= pbVar10) goto LAB_0002040a;" if (parenthesized_expression "(pbVar9 <= pbVar10)" ( (binary_expression "pbVar9 <= pbVar10" identifier <= identifier) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (expression_statement "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Unknown attribute:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Unknown attribute:\n",5)" identifier (argument_list "(0,"  Unknown attribute:\n",5)" ( number_literal , (string_literal ""  Unknown attribute:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "FUN_0001f5b0();" (call_expression "FUN_0001f5b0()" identifier (argument_list "()" ( ))) ;) })))) }))) (labeled_statement "LAB_00020560:\n                        bVar16 = local_84 < local_74;" statement_identifier : (expression_statement "bVar16 = local_84 < local_74;" (assignment_expression "bVar16 = local_84 < local_74" identifier = (binary_expression "local_84 < local_74" identifier < identifier)) ;)) (expression_statement "local_84 = local_84 - local_74;" (assignment_expression "local_84 = local_84 - local_74" identifier = (binary_expression "local_84 - local_74" identifier - identifier)) ;) (expression_statement "local_80 = (local_80 - local_70) - (uint)bVar16;" (assignment_expression "local_80 = (local_80 - local_70) - (uint)bVar16" identifier = (binary_expression "(local_80 - local_70) - (uint)bVar16" (parenthesized_expression "(local_80 - local_70)" ( (binary_expression "local_80 - local_70" identifier - identifier) )) - (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (if_statement "if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;" if (parenthesized_expression "((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9))" ( (binary_expression "(local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" (parenthesized_expression "(local_80 == 0 && local_84 == 0)" ( (binary_expression "local_80 == 0 && local_84 == 0" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "local_84 == 0" identifier == number_literal)) )) || (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" ( (binary_expression "__ptr + *(int *)(local_68 + 0x20) <= pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) ))))) <= identifier) ))) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (if_statement "if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;" if (parenthesized_expression "(local_80 == 0 && (uint)(5 < local_84) <= -local_80)" ( (binary_expression "local_80 == 0 && (uint)(5 < local_84) <= -local_80" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < local_84) <= -local_80" (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))) <= (unary_expression "-local_80" - identifier))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar5 = "Unused bytes at end of section\n";" (assignment_expression "pcVar5 = "Unused bytes at end of section\n"" identifier = (string_literal ""Unused bytes at end of section\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (labeled_statement "LAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" statement_identifier : (if_statement "if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;))) }) while (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) ;) })) (expression_statement "pcVar5 = "Tag section ends prematurely\n";" (assignment_expression "pcVar5 = "Tag section ends prematurely\n"" identifier = (string_literal ""Tag section ends prematurely\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar4);" (call_expression "error(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" else (compound_statement "{\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier (argument_list "(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( number_literal , (string_literal ""Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,(uint)bVar1,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1,(uint)bVar1)" identifier (argument_list "(pcVar5,(uint)bVar1,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0002018f:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) }))) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_68 = local_68 + 0x48;" (assignment_expression "local_68 = local_68 + 0x48" identifier = (binary_expression "local_68 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < *(uint *)(param_1 + 0x54))" ( (binary_expression "local_3c < *(uint *)(param_1 + 0x54)" identifier < (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) )) ;) }))) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3\nprocess_attributes(Filedata *filedata,char *public_name,uint proc_type,\n                  _func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute,\n                  _func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  byte *__ptr;\n  size_t sVar4;\n  uint uVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  uint uVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  dwarf_vma dVar19;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  Elf_Internal_Shdr *local_68;\n  uint local_54;\n  uint local_50;\n  bfd_boolean local_4c;\n  uint local_3c;\n  uint j;\n  undefined4 uStack_14;\n  \n  puVar2 = PTR_stdout_000b3fd8;\n  bVar16 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = filedata->section_headers;\n  if ((filedata->file_header).e_shnum == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }\n  return local_4c;\n}\n\n" comment (function_definition "bfd_boolean __regparm3\nprocess_attributes(Filedata *filedata,char *public_name,uint proc_type,\n                  _func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute,\n                  _func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  byte *__ptr;\n  size_t sVar4;\n  uint uVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  uint uVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  dwarf_vma dVar19;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  Elf_Internal_Shdr *local_68;\n  uint local_54;\n  uint local_50;\n  bfd_boolean local_4c;\n  uint local_3c;\n  uint j;\n  undefined4 uStack_14;\n  \n  puVar2 = PTR_stdout_000b3fd8;\n  bVar16 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = filedata->section_headers;\n  if ((filedata->file_header).e_shnum == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }\n  return local_4c;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "process_attributes(Filedata *filedata,char *public_name,uint proc_type,\n                  _func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute,\n                  _func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute)" identifier (parameter_list "(Filedata *filedata,char *public_name,uint proc_type,\n                  _func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute,\n                  _func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "char *public_name" primitive_type (pointer_declarator "*public_name" * identifier)) , (parameter_declaration "uint proc_type" type_identifier identifier) , (parameter_declaration "_func_uchar_ptr_uchar_ptr_uchar_ptr *display_pub_attribute" type_identifier (pointer_declarator "*display_pub_attribute" * identifier)) , (parameter_declaration "_func_uchar_ptr_uchar_ptr_uint_uchar_ptr *display_proc_gnu_attribute" type_identifier (pointer_declarator "*display_proc_gnu_attribute" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  byte *__ptr;\n  size_t sVar4;\n  uint uVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  uint uVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  dwarf_vma dVar19;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  Elf_Internal_Shdr *local_68;\n  uint local_54;\n  uint local_50;\n  bfd_boolean local_4c;\n  uint local_3c;\n  uint j;\n  undefined4 uStack_14;\n  \n  puVar2 = PTR_stdout_000b3fd8;\n  bVar16 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = filedata->section_headers;\n  if ((filedata->file_header).e_shnum == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }\n  return local_4c;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "elf_vma eVar17;" type_identifier identifier ;) (declaration "elf_vma eVar18;" type_identifier identifier ;) (declaration "dwarf_vma dVar19;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "Elf_Internal_Shdr *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "bfd_boolean local_4c;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint j;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x200a9;" (assignment_expression "uStack_14 = 0x200a9" identifier = number_literal) ;) (expression_statement "local_68 = filedata->section_headers;" (assignment_expression "local_68 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (if_statement "if ((filedata->file_header).e_shnum == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }" if (parenthesized_expression "((filedata->file_header).e_shnum == 0)" ( (binary_expression "(filedata->file_header).e_shnum == 0" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n    local_4c = 1;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) }) (else_clause "else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }" else (compound_statement "{\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    } while (local_3c < (filedata->file_header).e_shnum);" do (compound_statement "{\n      if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 1;\n    }" { (if_statement "if ((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)) {\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" if (parenthesized_expression "((local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type))" ( (binary_expression "(local_68->sh_type == 0x6ffffff5) || (local_68->sh_type == proc_type)" (parenthesized_expression "(local_68->sh_type == 0x6ffffff5)" ( (binary_expression "local_68->sh_type == 0x6ffffff5" (field_expression "local_68->sh_type" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(local_68->sh_type == proc_type)" ( (binary_expression "local_68->sh_type == proc_type" (field_expression "local_68->sh_type" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext(0,"attributes",5);\n        __ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"attributes",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"attributes",5)" identifier = (cast_expression "(char *)dcgettext(0,"attributes",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"attributes",5)" identifier (argument_list "(0,"attributes",5)" ( number_literal , (string_literal ""attributes"" " string_content ") , number_literal ))))) ;) (expression_statement "__ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3);" (assignment_expression "__ptr = (byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3)" identifier = (cast_expression "(byte *)get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3)" identifier (argument_list "((void *)0x0,filedata,(ulong)local_68->sh_offset,1,local_68->sh_size\n                                 ,pcVar3)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(ulong)local_68->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_68->sh_offset" identifier -> field_identifier)) , number_literal , (field_expression "local_68->sh_size" identifier -> field_identifier) , identifier ))))) ;) (if_statement "if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" if (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = 0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" else (compound_statement "{\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" { (expression_statement "bVar1 = *__ptr;" (assignment_expression "bVar1 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (if_statement "if (bVar1 == 0x41) {\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" if (parenthesized_expression "(bVar1 == 0x41)" ( (binary_expression "bVar1 == 0x41" identifier == number_literal) )) (compound_statement "{\n            iVar10 = (int)local_68->sh_size;\n            local_54 = iVar10 - 1;\n            local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);\n            pbVar8 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }\n          }" { (expression_statement "iVar10 = (int)local_68->sh_size;" (assignment_expression "iVar10 = (int)local_68->sh_size" identifier = (cast_expression "(int)local_68->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_68->sh_size" identifier -> field_identifier))) ;) (expression_statement "local_54 = iVar10 - 1;" (assignment_expression "local_54 = iVar10 - 1" identifier = (binary_expression "iVar10 - 1" identifier - number_literal)) ;) (expression_statement "local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0);" (assignment_expression "local_50 = *(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0)" identifier = (binary_expression "*(int *)((int)&local_68->sh_size + 4) + -1 + (uint)(iVar10 != 0)" (binary_expression "*(int *)((int)&local_68->sh_size + 4) + -1" (pointer_expression "*(int *)((int)&local_68->sh_size + 4)" * (cast_expression "(int *)((int)&local_68->sh_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_68->sh_size + 4)" ( (binary_expression "(int)&local_68->sh_size + 4" (cast_expression "(int)&local_68->sh_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_68->sh_size" & (field_expression "local_68->sh_size" identifier -> field_identifier))) + number_literal) )))) + number_literal) + (call_expression "(uint)(iVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) ))))) ;) (expression_statement "pbVar8 = __ptr + 1;" (assignment_expression "pbVar8 = __ptr + 1" identifier = (binary_expression "__ptr + 1" identifier + number_literal)) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar3 = "Tag section ends prematurely\n";\nLAB_00020443:\n              pcVar3 = (char *)dcgettext(0,pcVar3,5);\n              error(pcVar3);\n              local_4c = 0;\n            }" { (if_statement "if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" if (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) (compound_statement "{\n                do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" { (do_statement "do {\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));" do (compound_statement "{\n                  eVar18 = CONCAT44(local_50,local_54);\n                  pbVar7 = pbVar8 + 4;\n                  eVar17 = (*byte_get)(pbVar8,4);\n                  uVar9 = (uint)(eVar17 >> 0x20);\n                  uVar5 = (uint)eVar17;\n                  if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }\n                  uVar9 = (uint)(eVar18 - 4);\n                  iVar10 = (int)(eVar18 - 4 >> 0x20);\n                  sVar4 = strnlen((char *)pbVar7,uVar9);\n                  uVar5 = sVar4 + 1;\n                  if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar3);\n                  print_symbol(0x7fffffff,(char *)pbVar7);\n                  putc(10,*(FILE **)puVar2);\n                  bVar15 = public_name == (char *)0x0;\n                  bVar12 = false;\n                  if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }\n                  bVar13 = false;\n                  iVar6 = 4;\n                  pbVar8 = pbVar7;\n                  pbVar11 = &DAT_00076bae;\n                  do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);\n                  pbVar8 = pbVar7 + uVar5;\n                  local_84 = uVar9 - uVar5;\n                  local_80 = iVar10 - (uint)(uVar9 < uVar5);\n                  if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                }" { (expression_statement "eVar18 = CONCAT44(local_50,local_54);" (assignment_expression "eVar18 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (expression_statement "pbVar7 = pbVar8 + 4;" (assignment_expression "pbVar7 = pbVar8 + 4" identifier = (binary_expression "pbVar8 + 4" identifier + number_literal)) ;) (expression_statement "eVar17 = (*byte_get)(pbVar8,4);" (assignment_expression "eVar17 = (*byte_get)(pbVar8,4)" identifier = (call_expression "(*byte_get)(pbVar8,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(pbVar8,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar9 = (uint)(eVar17 >> 0x20);" (assignment_expression "uVar9 = (uint)(eVar17 >> 0x20)" identifier = (call_expression "(uint)(eVar17 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(eVar17 >> 0x20)" ( (binary_expression "eVar17 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (uint)eVar17;" (assignment_expression "uVar5 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)) {\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }" if (parenthesized_expression "(local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5))" ( (binary_expression "local_50 < uVar9 || local_50 - uVar9 < (uint)(local_54 < uVar5)" (binary_expression "local_50 < uVar9" identifier < identifier) || (binary_expression "local_50 - uVar9 < (uint)(local_54 < uVar5)" (binary_expression "local_50 - uVar9" identifier - identifier) < (call_expression "(uint)(local_54 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar5)" ( (binary_expression "local_54 < uVar5" identifier < identifier) ))))) )) (compound_statement "{\n                    pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(pcVar3,uVar5,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad attribute length (%u > %u)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad attribute length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad attribute length (%u > %u)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar3,uVar5,local_54);" (call_expression "error(pcVar3,uVar5,local_54)" identifier (argument_list "(pcVar3,uVar5,local_54)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }" else (compound_statement "{\n                    if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar12 = local_54 < uVar5;\n                    local_54 = local_54 - uVar5;\n                    local_50 = (local_50 - uVar9) - (uint)bVar12;\n                    eVar18 = eVar17;\n                  }" { (if_statement "if (uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9) {\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" if (parenthesized_expression "(uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9)" ( (binary_expression "uVar9 == 0 && (uint)(4 < uVar5) <= -uVar9" (binary_expression "uVar9 == 0" identifier == number_literal) && (binary_expression "(uint)(4 < uVar5) <= -uVar9" (call_expression "(uint)(4 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < uVar5)" ( (binary_expression "4 < uVar5" number_literal < identifier) ))) <= (unary_expression "-uVar9" - identifier))) )) (compound_statement "{\n                      pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(pcVar3,uVar5);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Attribute length of %u is too small\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Attribute length of %u is too small\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Attribute length of %u is too small\n",5)" identifier (argument_list "(0,"Attribute length of %u is too small\n",5)" ( number_literal , (string_literal ""Attribute length of %u is too small\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar3,uVar5);" (call_expression "error(pcVar3,uVar5)" identifier (argument_list "(pcVar3,uVar5)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })) (expression_statement "bVar12 = local_54 < uVar5;" (assignment_expression "bVar12 = local_54 < uVar5" identifier = (binary_expression "local_54 < uVar5" identifier < identifier)) ;) (expression_statement "local_54 = local_54 - uVar5;" (assignment_expression "local_54 = local_54 - uVar5" identifier = (binary_expression "local_54 - uVar5" identifier - identifier)) ;) (expression_statement "local_50 = (local_50 - uVar9) - (uint)bVar12;" (assignment_expression "local_50 = (local_50 - uVar9) - (uint)bVar12" identifier = (binary_expression "(local_50 - uVar9) - (uint)bVar12" (parenthesized_expression "(local_50 - uVar9)" ( (binary_expression "local_50 - uVar9" identifier - identifier) )) - (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "eVar18 = eVar17;" (assignment_expression "eVar18 = eVar17" identifier = identifier) ;) }))) (expression_statement "uVar9 = (uint)(eVar18 - 4);" (assignment_expression "uVar9 = (uint)(eVar18 - 4)" identifier = (call_expression "(uint)(eVar18 - 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(eVar18 - 4)" ( (binary_expression "eVar18 - 4" identifier - number_literal) )))) ;) (expression_statement "iVar10 = (int)(eVar18 - 4 >> 0x20);" (assignment_expression "iVar10 = (int)(eVar18 - 4 >> 0x20)" identifier = (cast_expression "(int)(eVar18 - 4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(eVar18 - 4 >> 0x20)" ( (binary_expression "eVar18 - 4 >> 0x20" (binary_expression "eVar18 - 4" identifier - number_literal) >> number_literal) )))) ;) (expression_statement "sVar4 = strnlen((char *)pbVar7,uVar9);" (assignment_expression "sVar4 = strnlen((char *)pbVar7,uVar9)" identifier = (call_expression "strnlen((char *)pbVar7,uVar9)" identifier (argument_list "((char *)pbVar7,uVar9)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "uVar5 = sVar4 + 1;" (assignment_expression "uVar5 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)) {\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10))" ( (binary_expression "(uVar5 == 0) || (iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10)" ( (binary_expression "iVar10 == 0 && (uint)(uVar5 < uVar9) <= (uint)-iVar10" (binary_expression "iVar10 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar5 < uVar9) <= (uint)-iVar10" (call_expression "(uint)(uVar5 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar9)" ( (binary_expression "uVar5 < uVar9" identifier < identifier) ))) <= (binary_expression "(uint)-iVar10" (parenthesized_expression "(uint)" ( identifier )) - identifier))) ))) )) (compound_statement "{\n                    pcVar3 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" { (expression_statement "pcVar3 = "Corrupt attribute section name\n";" (assignment_expression "pcVar3 = "Corrupt attribute section name\n"" identifier = (string_literal ""Corrupt attribute section name\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Attribute Section: ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Attribute Section: ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Attribute Section: ",5)" identifier (argument_list "(0,"Attribute Section: ",5)" ( number_literal , (string_literal ""Attribute Section: "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "print_symbol(0x7fffffff,(char *)pbVar7);" (call_expression "print_symbol(0x7fffffff,(char *)pbVar7)" identifier (argument_list "(0x7fffffff,(char *)pbVar7)" ( number_literal , (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "bVar15 = public_name == (char *)0x0;" (assignment_expression "bVar15 = public_name == (char *)0x0" identifier = (binary_expression "public_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (if_statement "if (!bVar15) {\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n                    iVar6 = strcmp((char *)pbVar7,public_name);\n                    bVar15 = iVar6 == 0;\n                    bVar12 = bVar15;\n                  }" { (expression_statement "iVar6 = strcmp((char *)pbVar7,public_name);" (assignment_expression "iVar6 = strcmp((char *)pbVar7,public_name)" identifier = (call_expression "strcmp((char *)pbVar7,public_name)" identifier (argument_list "((char *)pbVar7,public_name)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "bVar15 = iVar6 == 0;" (assignment_expression "bVar15 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) (expression_statement "bVar12 = bVar15;" (assignment_expression "bVar12 = bVar15" identifier = identifier) ;) })) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_00076bae;" (assignment_expression "pbVar11 = &DAT_00076bae" identifier = (pointer_expression "&DAT_00076bae" & identifier)) ;) (do_statement "do {\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  } while (bVar15);" do (compound_statement "{\n                    if (iVar6 == 0) break;\n                    iVar6 = iVar6 + -1;\n                    bVar13 = *pbVar8 < *pbVar11;\n                    bVar15 = *pbVar8 == *pbVar11;\n                    pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;\n                    pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n                  }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar8 < *pbVar11;" (assignment_expression "bVar13 = *pbVar8 < *pbVar11" identifier = (binary_expression "*pbVar8 < *pbVar11" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar8 == *pbVar11;" (assignment_expression "bVar15 = *pbVar8 == *pbVar11" identifier = (binary_expression "*pbVar8 == *pbVar11" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "pbVar8 = pbVar7 + uVar5;" (assignment_expression "pbVar8 = pbVar7 + uVar5" identifier = (binary_expression "pbVar7 + uVar5" identifier + identifier)) ;) (expression_statement "local_84 = uVar9 - uVar5;" (assignment_expression "local_84 = uVar9 - uVar5" identifier = (binary_expression "uVar9 - uVar5" identifier - identifier)) ;) (expression_statement "local_80 = iVar10 - (uint)(uVar9 < uVar5);" (assignment_expression "local_80 = iVar10 - (uint)(uVar9 < uVar5)" identifier = (binary_expression "iVar10 - (uint)(uVar9 < uVar5)" identifier - (call_expression "(uint)(uVar9 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) ))))) ;) (if_statement "if ((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))\n                  {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size))" ( (binary_expression "(local_80 != 0 || local_84 != 0) && (pbVar8 < __ptr + (int)local_68->sh_size)" (parenthesized_expression "(local_80 != 0 || local_84 != 0)" ( (binary_expression "local_80 != 0 || local_84 != 0" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "local_84 != 0" identifier != number_literal)) )) && (parenthesized_expression "(pbVar8 < __ptr + (int)local_68->sh_size)" ( (binary_expression "pbVar8 < __ptr + (int)local_68->sh_size" identifier < (binary_expression "__ptr + (int)local_68->sh_size" identifier + (cast_expression "(int)local_68->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_68->sh_size" identifier -> field_identifier)))) ))) )) (compound_statement "{\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar3 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" { (if_statement "if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" if (parenthesized_expression "(local_80 != 0 || -local_80 < (uint)(5 < local_84))" ( (binary_expression "local_80 != 0 || -local_80 < (uint)(5 < local_84)" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "-local_80 < (uint)(5 < local_84)" (unary_expression "-local_80" - identifier) < (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))))) )) (compound_statement "{\n                      do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" { (do_statement "do {\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );" do (compound_statement "{\n                        bVar1 = *pbVar8;\n                        eVar18 = (*byte_get)(pbVar8 + 1,4);\n                        uVar9 = (uint)(eVar18 >> 0x20);\n                        uVar5 = (uint)eVar18;\n                        if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)(eVar18 >> 0x20);\n                        local_74 = (uint)eVar18;\n                        pbVar7 = pbVar8 + local_74;\n                        if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar8 = pbVar8 + 5;\n                        if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }\nLAB_00020560:\n                        bVar14 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar14;\n                        pbVar8 = pbVar7;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      }" { (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (expression_statement "eVar18 = (*byte_get)(pbVar8 + 1,4);" (assignment_expression "eVar18 = (*byte_get)(pbVar8 + 1,4)" identifier = (call_expression "(*byte_get)(pbVar8 + 1,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(pbVar8 + 1,4)" ( (binary_expression "pbVar8 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar9 = (uint)(eVar18 >> 0x20);" (assignment_expression "uVar9 = (uint)(eVar18 >> 0x20)" identifier = (call_expression "(uint)(eVar18 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(eVar18 >> 0x20)" ( (binary_expression "eVar18 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (uint)eVar18;" (assignment_expression "uVar5 = (uint)eVar18" identifier = (cast_expression "(uint)eVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5))" ( (binary_expression "local_80 < uVar9 || local_80 - uVar9 < (uint)(local_84 < uVar5)" (binary_expression "local_80 < uVar9" identifier < identifier) || (binary_expression "local_80 - uVar9 < (uint)(local_84 < uVar5)" (binary_expression "local_80 - uVar9" identifier - identifier) < (call_expression "(uint)(local_84 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < uVar5)" ( (binary_expression "local_84 < uVar5" identifier < identifier) ))))) )) (compound_statement "{\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(pcVar3,uVar5,local_84);\n                          local_4c = 0;\n                          eVar18 = CONCAT44(local_80,local_84);\n                        }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad subsection length (%u > %u)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u > %u)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar3,uVar5,local_84);" (call_expression "error(pcVar3,uVar5,local_84)" identifier (argument_list "(pcVar3,uVar5,local_84)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "eVar18 = CONCAT44(local_80,local_84);" (assignment_expression "eVar18 = CONCAT44(local_80,local_84)" identifier = (call_expression "CONCAT44(local_80,local_84)" identifier (argument_list "(local_80,local_84)" ( identifier , identifier )))) ;) }) (else_clause "else if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" else (if_statement "if (uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9) {\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9)" ( (binary_expression "uVar9 == 0 && (uint)(5 < uVar5) <= -uVar9" (binary_expression "uVar9 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < uVar5) <= -uVar9" (call_expression "(uint)(5 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < uVar5)" ( (binary_expression "5 < uVar5" number_literal < identifier) ))) <= (unary_expression "-uVar9" - identifier))) )) (compound_statement "{\n                          pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(pcVar3,uVar5);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad subsection length (%u < 6)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u < 6)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u < 6)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar3,uVar5);" (call_expression "error(pcVar3,uVar5)" identifier (argument_list "(pcVar3,uVar5)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })))) (expression_statement "local_70 = (int)(eVar18 >> 0x20);" (assignment_expression "local_70 = (int)(eVar18 >> 0x20)" identifier = (cast_expression "(int)(eVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(eVar18 >> 0x20)" ( (binary_expression "eVar18 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_74 = (uint)eVar18;" (assignment_expression "local_74 = (uint)eVar18" identifier = (cast_expression "(uint)eVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar7 = pbVar8 + local_74;" (assignment_expression "pbVar7 = pbVar8 + local_74" identifier = (binary_expression "pbVar8 + local_74" identifier + identifier)) ;) (if_statement "if (__ptr + (int)local_68->sh_size < pbVar7) {\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" if (parenthesized_expression "(__ptr + (int)local_68->sh_size < pbVar7)" ( (binary_expression "__ptr + (int)local_68->sh_size < pbVar7" (binary_expression "__ptr + (int)local_68->sh_size" identifier + (cast_expression "(int)local_68->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_68->sh_size" identifier -> field_identifier))) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" { comment (expression_statement "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");" (call_expression "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" identifier (argument_list "("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" ( (string_literal ""end <= contents + sect->sh_size"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""process_attributes"" " string_content ") ))) ;) })) (expression_statement "pbVar8 = pbVar8 + 5;" (assignment_expression "pbVar8 = pbVar8 + 5" identifier = (binary_expression "pbVar8 + 5" identifier + number_literal)) ;) (if_statement "if (bVar1 == 2) {\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }" if (parenthesized_expression "(bVar1 == 2)" ( (binary_expression "bVar1 == 2" identifier == number_literal) )) (compound_statement "{\n                          pcVar3 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar3 = (char *)dcgettext(0,pcVar3,5);\n                          printf(pcVar3);\n                          while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;\n                          for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }\n                          if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar12 = true;\n                        }" { (expression_statement "pcVar3 = "Section Attributes:";" (assignment_expression "pcVar3 = "Section Attributes:"" identifier = (string_literal ""Section Attributes:"" " string_content ")) ;) (labeled_statement "LAB_000204bb:\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 "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (while_statement "while( true ) {\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                            pbVar8 = pbVar8 + j;\n                            if ((int)dVar19 == 0) break;\n                            printf(" %d",(int)dVar19);\n                          }" { (expression_statement "dVar19 = read_leb128(pbVar8,&j,0,pbVar7);" (assignment_expression "dVar19 = read_leb128(pbVar8,&j,0,pbVar7)" identifier = (call_expression "read_leb128(pbVar8,&j,0,pbVar7)" identifier (argument_list "(pbVar8,&j,0,pbVar7)" ( identifier , (pointer_expression "&j" & identifier) , number_literal , identifier )))) ;) (expression_statement "pbVar8 = pbVar8 + j;" (assignment_expression "pbVar8 = pbVar8 + j" identifier = (binary_expression "pbVar8 + j" identifier + identifier)) ;) (if_statement "if ((int)dVar19 == 0) break;" if (parenthesized_expression "((int)dVar19 == 0)" ( (binary_expression "(int)dVar19 == 0" (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "printf(" %d",(int)dVar19);" (call_expression "printf(" %d",(int)dVar19)" identifier (argument_list "(" %d",(int)dVar19)" ( (string_literal "" %d"" " string_content ") , (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_00020512:\n                          if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;" statement_identifier : (if_statement "if ((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)) goto LAB_000203f6;" if (parenthesized_expression "((display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12))" ( (binary_expression "(display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)\n                             || (!bVar12)" (parenthesized_expression "(display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0)" ( (binary_expression "display_pub_attribute == (_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0" identifier == (cast_expression "(_func_uchar_ptr_uchar_ptr_uchar_ptr *)0x0" ( (type_descriptor "_func_uchar_ptr_uchar_ptr_uchar_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) ))) )) (goto_statement "goto LAB_000203f6;" goto statement_identifier ;))) (for_statement "for (; pbVar8 < pbVar7; pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7))\n                          {\n                          }" for ( ; (binary_expression "pbVar8 < pbVar7" identifier < identifier) ; (assignment_expression "pbVar8 = (*display_pub_attribute)(pbVar8,pbVar7)" identifier = (call_expression "(*display_pub_attribute)(pbVar8,pbVar7)" (parenthesized_expression "(*display_pub_attribute)" ( (pointer_expression "*display_pub_attribute" * identifier) )) (argument_list "(pbVar8,pbVar7)" ( identifier , identifier )))) ) (compound_statement "{\n                          }" { })) (if_statement "if (pbVar7 != pbVar8) {\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" if (parenthesized_expression "(pbVar7 != pbVar8)" ( (binary_expression "pbVar7 != pbVar8" identifier != identifier) )) (compound_statement "{\n                            uVar5 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" { (expression_statement "uVar5 = 0x3c5c;" (assignment_expression "uVar5 = 0x3c5c" identifier = number_literal) ;) (goto_statement "goto LAB_0002088f;" goto statement_identifier ;) })) (expression_statement "bVar12 = true;" (assignment_expression "bVar12 = true" identifier = true) ;) }) (else_clause "else {\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }" else (compound_statement "{\n                          if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }\n                          pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar3,(uint)bVar1);\n                          bVar12 = false;\nLAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }\n                        }" { (if_statement "if (bVar1 == 3) {\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n                            pcVar3 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" { (expression_statement "pcVar3 = "Symbol Attributes:";" (assignment_expression "pcVar3 = "Symbol Attributes:"" identifier = (string_literal ""Symbol Attributes:"" " string_content ")) ;) (goto_statement "goto LAB_000204bb;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 1) {\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n                            pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar3);\n                            goto LAB_00020512;\n                          }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"File Attributes\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"File Attributes\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"File Attributes\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"File Attributes\n",5)" identifier (argument_list "(0,"File Attributes\n",5)" ( number_literal , (string_literal ""File Attributes\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (goto_statement "goto LAB_00020512;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Unknown tag: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown tag: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown tag: %d\n",5)" identifier (argument_list "(0,"Unknown tag: %d\n",5)" ( number_literal , (string_literal ""Unknown tag: %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,(uint)bVar1);" (call_expression "printf(pcVar3,(uint)bVar1)" identifier (argument_list "(pcVar3,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (labeled_statement "LAB_000203f6:\n                          if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }" statement_identifier : (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }" if (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n                            if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }\nLAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }\n                          }" { (if_statement "if (pbVar8 < pbVar7) {\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }" if (parenthesized_expression "(pbVar8 < pbVar7)" ( (binary_expression "pbVar8 < pbVar7" identifier < identifier) )) (compound_statement "{\n                              do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);\n                            }" { (do_statement "do {\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              } while (pbVar8 < pbVar7);" do (compound_statement "{\n                                while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }\n                                if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);\n                              }" { (while_statement "while( true ) {\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  uVar5 = (uint)dVar19;\n                                  pbVar8 = pbVar8 + j;\n                                  if (uVar5 != 0x20) break;\n                                  dVar19 = read_leb128(pbVar8,&j,0,pbVar7);\n                                  pbVar8 = pbVar8 + j;\n                                  pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar3,(int)dVar19);\n                                  if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }\n                                  putc(10,*(FILE **)puVar2);\nLAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;\n                                }" { (expression_statement "dVar19 = read_leb128(pbVar8,&j,0,pbVar7);" (assignment_expression "dVar19 = read_leb128(pbVar8,&j,0,pbVar7)" identifier = (call_expression "read_leb128(pbVar8,&j,0,pbVar7)" identifier (argument_list "(pbVar8,&j,0,pbVar7)" ( identifier , (pointer_expression "&j" & identifier) , number_literal , identifier )))) ;) (expression_statement "uVar5 = (uint)dVar19;" (assignment_expression "uVar5 = (uint)dVar19" identifier = (cast_expression "(uint)dVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar8 = pbVar8 + j;" (assignment_expression "pbVar8 = pbVar8 + j" identifier = (binary_expression "pbVar8 + j" identifier + identifier)) ;) (if_statement "if (uVar5 != 0x20) break;" if (parenthesized_expression "(uVar5 != 0x20)" ( (binary_expression "uVar5 != 0x20" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar19 = read_leb128(pbVar8,&j,0,pbVar7);" (assignment_expression "dVar19 = read_leb128(pbVar8,&j,0,pbVar7)" identifier = (call_expression "read_leb128(pbVar8,&j,0,pbVar7)" identifier (argument_list "(pbVar8,&j,0,pbVar7)" ( identifier , (pointer_expression "&j" & identifier) , number_literal , identifier )))) ;) (expression_statement "pbVar8 = pbVar8 + j;" (assignment_expression "pbVar8 = pbVar8 + j" identifier = (binary_expression "pbVar8 + j" identifier + identifier)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,(int)dVar19);" (call_expression "printf(pcVar3,(int)dVar19)" identifier (argument_list "(pcVar3,(int)dVar19)" ( identifier , (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (pbVar7 == pbVar8) {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }" if (parenthesized_expression "(pbVar7 == pbVar8)" ( (binary_expression "pbVar7 == pbVar8" identifier == identifier) )) (compound_statement "{\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar3);\n                                    pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(pcVar3);\n                                    goto LAB_00020560;\n                                  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<corrupt>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>\n",5)" identifier (argument_list "(0,"<corrupt>\n",5)" ( number_literal , (string_literal ""<corrupt>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"corrupt vendor attribute\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt vendor attribute\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt vendor attribute\n",5)" identifier (argument_list "(0,"corrupt vendor attribute\n",5)" ( number_literal , (string_literal ""corrupt vendor attribute\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (goto_statement "goto LAB_00020560;" goto statement_identifier ;) })) (if_statement "if (pbVar8 < pbVar7 + -1) {\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }\n                                  else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }" if (parenthesized_expression "(pbVar8 < pbVar7 + -1)" ( (binary_expression "pbVar8 < pbVar7 + -1" identifier < (binary_expression "pbVar7 + -1" identifier + number_literal)) )) (compound_statement "{\n                                    print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);\n                                    sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));\n                                    pbVar8 = pbVar8 + sVar4 + 1;\n                                  }" { (expression_statement "print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8);" (call_expression "print_symbol((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8)" identifier (argument_list "((int)(pbVar7 + (-1 - (int)pbVar8)),(char *)pbVar8)" ( (cast_expression "(int)(pbVar7 + (-1 - (int)pbVar8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar7 + (-1 - (int)pbVar8))" ( (binary_expression "pbVar7 + (-1 - (int)pbVar8)" identifier + (parenthesized_expression "(-1 - (int)pbVar8)" ( (binary_expression "-1 - (int)pbVar8" number_literal - (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (cast_expression "(char *)pbVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)));" (assignment_expression "sVar4 = strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)))" identifier = (call_expression "strnlen((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)))" identifier (argument_list "((char *)pbVar8,\n                                                    (size_t)(pbVar7 + (-1 - (int)pbVar8)))" ( (cast_expression "(char *)pbVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(pbVar7 + (-1 - (int)pbVar8))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pbVar7 + (-1 - (int)pbVar8))" ( (binary_expression "pbVar7 + (-1 - (int)pbVar8)" identifier + (parenthesized_expression "(-1 - (int)pbVar8)" ( (binary_expression "-1 - (int)pbVar8" number_literal - (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) )))) ;) (expression_statement "pbVar8 = pbVar8 + sVar4 + 1;" (assignment_expression "pbVar8 = pbVar8 + sVar4 + 1" identifier = (binary_expression "pbVar8 + sVar4 + 1" (binary_expression "pbVar8 + sVar4" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }" else (compound_statement "{\n                                    pcVar3 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar3);\n                                    pbVar8 = pbVar7;\n                                  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" identifier = identifier) ;) }))) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (labeled_statement "LAB_0002062a:\n                                  if (pbVar7 <= pbVar8) goto LAB_00020657;" statement_identifier : (if_statement "if (pbVar7 <= pbVar8) goto LAB_00020657;" if (parenthesized_expression "(pbVar7 <= pbVar8)" ( (binary_expression "pbVar7 <= pbVar8" identifier <= identifier) )) (goto_statement "goto LAB_00020657;" goto statement_identifier ;))) })) (if_statement "if ((dVar19 & 2) == 0) {\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }" if (parenthesized_expression "((dVar19 & 2) == 0)" ( (binary_expression "(dVar19 & 2) == 0" (parenthesized_expression "(dVar19 & 2)" ( (binary_expression "dVar19 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                  pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);\n                                  goto LAB_0002062a;\n                                }" { (expression_statement "pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7);" (assignment_expression "pbVar8 = (*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7)" identifier = (call_expression "(*display_proc_gnu_attribute)(pbVar8,uVar5,pbVar7)" (parenthesized_expression "(*display_proc_gnu_attribute)" ( (pointer_expression "*display_proc_gnu_attribute" * identifier) )) (argument_list "(pbVar8,uVar5,pbVar7)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0002062a;" goto statement_identifier ;) })) (expression_statement "pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7);" (assignment_expression "pbVar8 = display_tag_value(uVar5,pbVar8,pbVar7)" identifier = (call_expression "display_tag_value(uVar5,pbVar8,pbVar7)" identifier (argument_list "(uVar5,pbVar8,pbVar7)" ( identifier , identifier , identifier )))) ;) }) while (parenthesized_expression "(pbVar8 < pbVar7)" ( (binary_expression "pbVar8 < pbVar7" identifier < identifier) )) ;) })) (labeled_statement "LAB_00020657:\n                            if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }" statement_identifier : (if_statement "if (pbVar7 != pbVar8) {\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }" if (parenthesized_expression "(pbVar7 != pbVar8)" ( (binary_expression "pbVar7 != pbVar8" identifier != identifier) )) (compound_statement "{\n                              uVar5 = 0x3c64;\nLAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");\n                            }" { (expression_statement "uVar5 = 0x3c64;" (assignment_expression "uVar5 = 0x3c64" identifier = number_literal) ;) (labeled_statement "LAB_0002088f:\n                    /* WARNING: Subroutine does not return */\n                              __assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");" statement_identifier : comment (expression_statement "__assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes");" (call_expression "__assert_fail("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes")" identifier (argument_list "("p == end","../../binutils/readelf.c",uVar5,\n                                            "process_attributes")" ( (string_literal ""p == end"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , identifier , (string_literal ""process_attributes"" " string_content ") ))) ;)) }))) }) (else_clause "else {\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }" else (compound_statement "{\n                            if (pbVar7 <= pbVar8) goto LAB_0002040a;\n                            pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar3);\n                            display_raw_attribute(pbVar8,pbVar7);\n                          }" { (if_statement "if (pbVar7 <= pbVar8) goto LAB_0002040a;" if (parenthesized_expression "(pbVar7 <= pbVar8)" ( (binary_expression "pbVar7 <= pbVar8" identifier <= identifier) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (expression_statement "pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"  Unknown attribute:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Unknown attribute:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Unknown attribute:\n",5)" identifier (argument_list "(0,"  Unknown attribute:\n",5)" ( number_literal , (string_literal ""  Unknown attribute:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "display_raw_attribute(pbVar8,pbVar7);" (call_expression "display_raw_attribute(pbVar8,pbVar7)" identifier (argument_list "(pbVar8,pbVar7)" ( identifier , identifier ))) ;) })))) }))) (labeled_statement "LAB_00020560:\n                        bVar14 = local_84 < local_74;" statement_identifier : (expression_statement "bVar14 = local_84 < local_74;" (assignment_expression "bVar14 = local_84 < local_74" identifier = (binary_expression "local_84 < local_74" identifier < identifier)) ;)) (expression_statement "local_84 = local_84 - local_74;" (assignment_expression "local_84 = local_84 - local_74" identifier = (binary_expression "local_84 - local_74" identifier - identifier)) ;) (expression_statement "local_80 = (local_80 - local_70) - (uint)bVar14;" (assignment_expression "local_80 = (local_80 - local_70) - (uint)bVar14" identifier = (binary_expression "(local_80 - local_70) - (uint)bVar14" (parenthesized_expression "(local_80 - local_70)" ( (binary_expression "local_80 - local_70" identifier - identifier) )) - (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" identifier = identifier) ;) (if_statement "if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)) goto LAB_0002040a;" if (parenthesized_expression "((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7))" ( (binary_expression "(local_80 == 0 && local_84 == 0) ||\n                           (__ptr + (int)local_68->sh_size <= pbVar7)" (parenthesized_expression "(local_80 == 0 && local_84 == 0)" ( (binary_expression "local_80 == 0 && local_84 == 0" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "local_84 == 0" identifier == number_literal)) )) || (parenthesized_expression "(__ptr + (int)local_68->sh_size <= pbVar7)" ( (binary_expression "__ptr + (int)local_68->sh_size <= pbVar7" (binary_expression "__ptr + (int)local_68->sh_size" identifier + (cast_expression "(int)local_68->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "local_68->sh_size" identifier -> field_identifier))) <= identifier) ))) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (if_statement "if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;" if (parenthesized_expression "(local_80 == 0 && (uint)(5 < local_84) <= -local_80)" ( (binary_expression "local_80 == 0 && (uint)(5 < local_84) <= -local_80" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < local_84) <= -local_80" (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))) <= (unary_expression "-local_80" - identifier))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar3 = "Unused bytes at end of section\n";" (assignment_expression "pcVar3 = "Unused bytes at end of section\n"" identifier = (string_literal ""Unused bytes at end of section\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (labeled_statement "LAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" statement_identifier : (if_statement "if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;))) }) while (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) ;) })) (expression_statement "pcVar3 = "Tag section ends prematurely\n";" (assignment_expression "pcVar3 = "Tag section ends prematurely\n"" identifier = (string_literal ""Tag section ends prematurely\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00020443:\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 "error(pcVar3);" (call_expression "error(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" else (compound_statement "{\n            pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar3,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier (argument_list "(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( number_literal , (string_literal ""Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,(uint)bVar1,(uint)bVar1);" (call_expression "printf(pcVar3,(uint)bVar1,(uint)bVar1)" identifier (argument_list "(pcVar3,(uint)bVar1,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0002018f:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) }))) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_68 = local_68 + 1;" (assignment_expression "local_68 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < (filedata->file_header).e_shnum)" ( (binary_expression "local_3c < (filedata->file_header).e_shnum" identifier < (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) )) ;) }))) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit "undefined4 __regparm3\nFUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" identifier (parameter_list "(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_stdout_000b3fd8;" (assignment_expression "puVar3 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x200a9;" (assignment_expression "uStack_14 = 0x200a9" identifier = number_literal) ;) (expression_statement "local_68 = *(int *)(param_1 + 0x5c);" (assignment_expression "local_68 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_4c = 1;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) }) (else_clause "else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" else (compound_statement "{\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));" do (compound_statement "{\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    }" { (if_statement "if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" if (parenthesized_expression "((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3))" ( (binary_expression "(*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)" (parenthesized_expression "(*(int *)(local_68 + 4) == 0x6ffffff5)" ( (binary_expression "*(int *)(local_68 + 4) == 0x6ffffff5" (pointer_expression "*(int *)(local_68 + 4)" * (cast_expression "(int *)(local_68 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 4)" ( (binary_expression "local_68 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(local_68 + 4) == param_3)" ( (binary_expression "*(int *)(local_68 + 4) == param_3" (pointer_expression "*(int *)(local_68 + 4)" * (cast_expression "(int *)(local_68 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 4)" ( (binary_expression "local_68 + 4" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" { (expression_statement "uVar4 = dcgettext(0,"attributes",5);" (assignment_expression "uVar4 = dcgettext(0,"attributes",5)" identifier = (call_expression "dcgettext(0,"attributes",5)" identifier (argument_list "(0,"attributes",5)" ( number_literal , (string_literal ""attributes"" " string_content ") , number_literal )))) ;) (expression_statement "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);" (assignment_expression "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" identifier = (cast_expression "(byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" identifier (argument_list "(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(local_68 + 0x20)" * (cast_expression "(undefined4 *)(local_68 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(local_68 + 0x24)" * (cast_expression "(undefined4 *)(local_68 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x24)" ( (binary_expression "local_68 + 0x24" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" if (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = 0;\n        }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" else (compound_statement "{\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" { (expression_statement "bVar1 = *__ptr;" (assignment_expression "bVar1 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (if_statement "if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" if (parenthesized_expression "(bVar1 == 0x41)" ( (binary_expression "bVar1 == 0x41" identifier == number_literal) )) (compound_statement "{\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }" { (expression_statement "local_54 = *(int *)(local_68 + 0x20) - 1;" (assignment_expression "local_54 = *(int *)(local_68 + 0x20) - 1" identifier = (binary_expression "*(int *)(local_68 + 0x20) - 1" (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);" (assignment_expression "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" identifier = (binary_expression "*(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" (binary_expression "*(int *)(local_68 + 0x24) + -1" (pointer_expression "*(int *)(local_68 + 0x24)" * (cast_expression "(int *)(local_68 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x24)" ( (binary_expression "local_68 + 0x24" identifier + number_literal) )))) + number_literal) + (call_expression "(uint)(*(int *)(local_68 + 0x20) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(local_68 + 0x20) != 0)" ( (binary_expression "*(int *)(local_68 + 0x20) != 0" (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))) != number_literal) ))))) ;) (expression_statement "pbVar10 = __ptr + 1;" (assignment_expression "pbVar10 = __ptr + 1" identifier = (binary_expression "__ptr + 1" identifier + number_literal)) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" { (if_statement "if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" if (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) (compound_statement "{\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" { (do_statement "do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));" do (compound_statement "{\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                }" { (expression_statement "lVar2 = CONCAT44(local_50,local_54);" (assignment_expression "lVar2 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (expression_statement "pbVar9 = pbVar10 + 4;" (assignment_expression "pbVar9 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) (expression_statement "lVar19 = (*DAT_000b9dd8)(pbVar10,4);" (assignment_expression "lVar19 = (*DAT_000b9dd8)(pbVar10,4)" identifier = (call_expression "(*DAT_000b9dd8)(pbVar10,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pbVar10,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (uint)((ulonglong)lVar19 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)lVar19 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar19 >> 0x20)" ( (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)lVar19;" (assignment_expression "uVar7 = (uint)lVar19" identifier = (cast_expression "(uint)lVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" if (parenthesized_expression "(local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7))" ( (binary_expression "local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 < uVar11" identifier < identifier) || (binary_expression "local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 - uVar11" identifier - identifier) < (call_expression "(uint)(local_54 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar7)" ( (binary_expression "local_54 < uVar7" identifier < identifier) ))))) )) (compound_statement "{\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }" { (expression_statement "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier = (call_expression "dcgettext(0,"Bad attribute length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad attribute length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad attribute length (%u > %u)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7,local_54);" (call_expression "error(uVar4,uVar7,local_54)" identifier (argument_list "(uVar4,uVar7,local_54)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" else (compound_statement "{\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" { (if_statement "if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" if (parenthesized_expression "(uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11)" ( (binary_expression "uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" identifier == number_literal) && (binary_expression "(uint)(4 < uVar7) <= -uVar11" (call_expression "(uint)(4 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < uVar7)" ( (binary_expression "4 < uVar7" number_literal < identifier) ))) <= (unary_expression "-uVar11" - identifier))) )) (compound_statement "{\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" { (expression_statement "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5)" identifier = (call_expression "dcgettext(0,"Attribute length of %u is too small\n",5)" identifier (argument_list "(0,"Attribute length of %u is too small\n",5)" ( number_literal , (string_literal ""Attribute length of %u is too small\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" identifier (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })) (expression_statement "bVar14 = local_54 < uVar7;" (assignment_expression "bVar14 = local_54 < uVar7" identifier = (binary_expression "local_54 < uVar7" identifier < identifier)) ;) (expression_statement "local_54 = local_54 - uVar7;" (assignment_expression "local_54 = local_54 - uVar7" identifier = (binary_expression "local_54 - uVar7" identifier - identifier)) ;) (expression_statement "local_50 = (local_50 - uVar11) - (uint)bVar14;" (assignment_expression "local_50 = (local_50 - uVar11) - (uint)bVar14" identifier = (binary_expression "(local_50 - uVar11) - (uint)bVar14" (parenthesized_expression "(local_50 - uVar11)" ( (binary_expression "local_50 - uVar11" identifier - identifier) )) - (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "lVar2 = lVar19;" (assignment_expression "lVar2 = lVar19" identifier = identifier) ;) }))) (expression_statement "uVar11 = (uint)(lVar2 + -4);" (assignment_expression "uVar11 = (uint)(lVar2 + -4)" identifier = (call_expression "(uint)(lVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar2 + -4)" ( (binary_expression "lVar2 + -4" identifier + number_literal) )))) ;) (expression_statement "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);" (assignment_expression "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(lVar2 + -4) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar2 + -4) >> 0x20)" ( (binary_expression "(ulonglong)(lVar2 + -4) >> 0x20" (call_expression "(ulonglong)(lVar2 + -4)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar2 + -4)" ( (binary_expression "lVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "sVar6 = strnlen((char *)pbVar9,uVar11);" (assignment_expression "sVar6 = strnlen((char *)pbVar9,uVar11)" identifier = (call_expression "strnlen((char *)pbVar9,uVar11)" identifier (argument_list "((char *)pbVar9,uVar11)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "uVar7 = sVar6 + 1;" (assignment_expression "uVar7 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12))" ( (binary_expression "(uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" ( (binary_expression "iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12" (binary_expression "iVar12 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar7 < uVar11) <= (uint)-iVar12" (call_expression "(uint)(uVar7 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar11)" ( (binary_expression "uVar7 < uVar11" identifier < identifier) ))) <= (binary_expression "(uint)-iVar12" (parenthesized_expression "(uint)" ( identifier )) - identifier))) ))) )) (compound_statement "{\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" { (expression_statement "pcVar5 = "Corrupt attribute section name\n";" (assignment_expression "pcVar5 = "Corrupt attribute section name\n"" identifier = (string_literal ""Corrupt attribute section name\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (expression_statement "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Attribute Section: ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Attribute Section: ",5)" identifier (argument_list "(0,"Attribute Section: ",5)" ( number_literal , (string_literal ""Attribute Section: "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "bVar17 = param_2 == (char *)0x0;" (assignment_expression "bVar17 = param_2 == (char *)0x0" identifier = (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (if_statement "if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" { (expression_statement "iVar8 = strcmp((char *)pbVar9,param_2);" (assignment_expression "iVar8 = strcmp((char *)pbVar9,param_2)" identifier = (call_expression "strcmp((char *)pbVar9,param_2)" identifier (argument_list "((char *)pbVar9,param_2)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "bVar17 = iVar8 == 0;" (assignment_expression "bVar17 = iVar8 == 0" identifier = (binary_expression "iVar8 == 0" identifier == number_literal)) ;) (expression_statement "bVar14 = bVar17;" (assignment_expression "bVar14 = bVar17" identifier = identifier) ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar13 = &DAT_00076bae;" (assignment_expression "pbVar13 = &DAT_00076bae" identifier = (pointer_expression "&DAT_00076bae" & identifier)) ;) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);" do (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar13;" (assignment_expression "bVar15 = *pbVar10 < *pbVar13" identifier = (binary_expression "*pbVar10 < *pbVar13" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar13;" (assignment_expression "bVar17 = *pbVar10 == *pbVar13" identifier = (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "pbVar10 = pbVar9 + uVar7;" (assignment_expression "pbVar10 = pbVar9 + uVar7" identifier = (binary_expression "pbVar9 + uVar7" identifier + identifier)) ;) (expression_statement "local_84 = uVar11 - uVar7;" (assignment_expression "local_84 = uVar11 - uVar7" identifier = (binary_expression "uVar11 - uVar7" identifier - identifier)) ;) (expression_statement "local_80 = iVar12 - (uint)(uVar11 < uVar7);" (assignment_expression "local_80 = iVar12 - (uint)(uVar11 < uVar7)" identifier = (binary_expression "iVar12 - (uint)(uVar11 < uVar7)" identifier - (call_expression "(uint)(uVar11 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar7)" ( (binary_expression "uVar11 < uVar7" identifier < identifier) ))))) ;) (if_statement "if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" if (parenthesized_expression "((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20)))" ( (binary_expression "(local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))" (parenthesized_expression "(local_80 != 0 || local_84 != 0)" ( (binary_expression "local_80 != 0 || local_84 != 0" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "local_84 != 0" identifier != number_literal)) )) && (parenthesized_expression "(pbVar10 < __ptr + *(int *)(local_68 + 0x20))" ( (binary_expression "pbVar10 < __ptr + *(int *)(local_68 + 0x20)" identifier < (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" { (if_statement "if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" if (parenthesized_expression "(local_80 != 0 || -local_80 < (uint)(5 < local_84))" ( (binary_expression "local_80 != 0 || -local_80 < (uint)(5 < local_84)" (binary_expression "local_80 != 0" identifier != number_literal) || (binary_expression "-local_80 < (uint)(5 < local_84)" (unary_expression "-local_80" - identifier) < (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))))) )) (compound_statement "{\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" { (do_statement "do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );" do (compound_statement "{\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      }" { (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);" (assignment_expression "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4)" identifier = (call_expression "(*DAT_000b9dd8)(pbVar10 + 1,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pbVar10 + 1,4)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar11 = (uint)((ulonglong)uVar20 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)uVar20 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)uVar20;" (assignment_expression "uVar7 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7))" ( (binary_expression "local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 < uVar11" identifier < identifier) || (binary_expression "local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 - uVar11" identifier - identifier) < (call_expression "(uint)(local_84 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < uVar7)" ( (binary_expression "local_84 < uVar7" identifier < identifier) ))))) )) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }" { (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier = (call_expression "dcgettext(0,"Bad subsection length (%u > %u)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u > %u)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u > %u)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7,local_84);" (call_expression "error(uVar4,uVar7,local_84)" identifier (argument_list "(uVar4,uVar7,local_84)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar20 = CONCAT44(local_80,local_84);" (assignment_expression "uVar20 = CONCAT44(local_80,local_84)" identifier = (call_expression "CONCAT44(local_80,local_84)" identifier (argument_list "(local_80,local_84)" ( identifier , identifier )))) ;) }) (else_clause "else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" else (if_statement "if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" if (parenthesized_expression "(uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11)" ( (binary_expression "uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < uVar7) <= -uVar11" (call_expression "(uint)(5 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < uVar7)" ( (binary_expression "5 < uVar7" number_literal < identifier) ))) <= (unary_expression "-uVar11" - identifier))) )) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" { (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier = (call_expression "dcgettext(0,"Bad subsection length (%u < 6)\n",5)" identifier (argument_list "(0,"Bad subsection length (%u < 6)\n",5)" ( number_literal , (string_literal ""Bad subsection length (%u < 6)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" identifier (argument_list "(uVar4,uVar7)" ( identifier , identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;) })))) (expression_statement "local_70 = (int)((ulonglong)uVar20 >> 0x20);" (assignment_expression "local_70 = (int)((ulonglong)uVar20 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar20;" (assignment_expression "local_74 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = pbVar10 + local_74;" (assignment_expression "pbVar9 = pbVar10 + local_74" identifier = (binary_expression "pbVar10 + local_74" identifier + identifier)) ;) (if_statement "if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" if (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) < pbVar9)" ( (binary_expression "__ptr + *(int *)(local_68 + 0x20) < pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" { (expression_statement "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");" (call_expression "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" identifier (argument_list "("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" ( (string_literal ""end <= contents + sect->sh_size"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""process_attributes"" " string_content ") ))) ;) })) (expression_statement "pbVar10 = pbVar10 + 5;" (assignment_expression "pbVar10 = pbVar10 + 5" identifier = (binary_expression "pbVar10 + 5" identifier + number_literal)) ;) (if_statement "if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" if (parenthesized_expression "(bVar1 == 2)" ( (binary_expression "bVar1 == 2" identifier == number_literal) )) (compound_statement "{\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }" { (expression_statement "pcVar5 = "Section Attributes:";" (assignment_expression "pcVar5 = "Section Attributes:"" identifier = (string_literal ""Section Attributes:"" " string_content ")) ;) (labeled_statement "LAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (while_statement "while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" { (expression_statement "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "printf(" %d",iVar12);" (call_expression "printf(" %d",iVar12)" identifier (argument_list "(" %d",iVar12)" ( (string_literal "" %d"" " string_content ") , identifier ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" statement_identifier : (if_statement "if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" if (parenthesized_expression "((param_4 == (code *)0x0) || (!bVar14))" ( (binary_expression "(param_4 == (code *)0x0) || (!bVar14)" (parenthesized_expression "(param_4 == (code *)0x0)" ( (binary_expression "param_4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) ))) )) (goto_statement "goto LAB_000203f6;" goto statement_identifier ;))) (for_statement "for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }" for ( ; (binary_expression "pbVar10 < pbVar9" identifier < identifier) ; (assignment_expression "pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)" identifier = (cast_expression "(byte *)(*param_4)(pbVar10,pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*param_4)(pbVar10,pbVar9)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(pbVar10,pbVar9)" ( identifier , identifier ))))) ) (compound_statement "{\n                          }" { })) (if_statement "if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" if (parenthesized_expression "(pbVar9 != pbVar10)" ( (binary_expression "pbVar9 != pbVar10" identifier != identifier) )) (compound_statement "{\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" { (expression_statement "uVar7 = 0x3c5c;" (assignment_expression "uVar7 = 0x3c5c" identifier = number_literal) ;) (goto_statement "goto LAB_0002088f;" goto statement_identifier ;) })) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" identifier = true) ;) }) (else_clause "else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" else (compound_statement "{\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" { (if_statement "if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" if (parenthesized_expression "(bVar1 == 3)" ( (binary_expression "bVar1 == 3" identifier == number_literal) )) (compound_statement "{\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" { (expression_statement "pcVar5 = "Symbol Attributes:";" (assignment_expression "pcVar5 = "Symbol Attributes:"" identifier = (string_literal ""Symbol Attributes:"" " string_content ")) ;) (goto_statement "goto LAB_000204bb;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" if (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) (compound_statement "{\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"File Attributes\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"File Attributes\n",5)" identifier (argument_list "(0,"File Attributes\n",5)" ( number_literal , (string_literal ""File Attributes\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (goto_statement "goto LAB_00020512;" goto statement_identifier ;) })) (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown tag: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown tag: %d\n",5)" identifier (argument_list "(0,"Unknown tag: %d\n",5)" ( number_literal , (string_literal ""Unknown tag: %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1)" identifier (argument_list "(pcVar5,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (labeled_statement "LAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" statement_identifier : (if_statement "if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" if (parenthesized_expression "((!bVar15 && !bVar17) == bVar15)" ( (binary_expression "(!bVar15 && !bVar17) == bVar15" (parenthesized_expression "(!bVar15 && !bVar17)" ( (binary_expression "!bVar15 && !bVar17" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (compound_statement "{\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }" { (if_statement "if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" if (parenthesized_expression "(pbVar10 < pbVar9)" ( (binary_expression "pbVar10 < pbVar9" identifier < identifier) )) (compound_statement "{\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" { (do_statement "do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);" do (compound_statement "{\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              }" { (while_statement "while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" { (expression_statement "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (uVar7 != 0x20) break;" if (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier = (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" identifier (argument_list "(pbVar10,local_20,0,pbVar9)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" identifier = (binary_expression "pbVar10 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,uVar4);" (call_expression "printf(pcVar5,uVar4)" identifier (argument_list "(pcVar5,uVar4)" ( identifier , identifier ))) ;) (if_statement "if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" if (parenthesized_expression "(pbVar9 == pbVar10)" ( (binary_expression "pbVar9 == pbVar10" identifier == identifier) )) (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>\n",5)" identifier (argument_list "(0,"<corrupt>\n",5)" ( number_literal , (string_literal ""<corrupt>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);" (assignment_expression "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5)" identifier = (call_expression "dcgettext(0,"corrupt vendor attribute\n",5)" identifier (argument_list "(0,"corrupt vendor attribute\n",5)" ( number_literal , (string_literal ""corrupt vendor attribute\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00020560;" goto statement_identifier ;) })) (if_statement "if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" if (parenthesized_expression "(pbVar10 < pbVar9 + -1)" ( (binary_expression "pbVar10 < pbVar9 + -1" identifier < (binary_expression "pbVar9 + -1" identifier + number_literal)) )) (compound_statement "{\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }" { (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));" (assignment_expression "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" identifier = (call_expression "strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" identifier (argument_list "((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(pbVar9 + (-1 - (int)pbVar10))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pbVar9 + (-1 - (int)pbVar10))" ( (binary_expression "pbVar9 + (-1 - (int)pbVar10)" identifier + (parenthesized_expression "(-1 - (int)pbVar10)" ( (binary_expression "-1 - (int)pbVar10" number_literal - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) )))) ;) (expression_statement "pbVar10 = pbVar10 + sVar6 + 1;" (assignment_expression "pbVar10 = pbVar10 + sVar6 + 1" identifier = (binary_expression "pbVar10 + sVar6 + 1" (binary_expression "pbVar10 + sVar6" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" else (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) }))) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" identifier (argument_list "(10,*(FILE **)puVar3)" ( number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (labeled_statement "LAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;" statement_identifier : (if_statement "if (pbVar9 <= pbVar10) goto LAB_00020657;" if (parenthesized_expression "(pbVar9 <= pbVar10)" ( (binary_expression "pbVar9 <= pbVar10" identifier <= identifier) )) (goto_statement "goto LAB_00020657;" goto statement_identifier ;))) })) (if_statement "if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" if (parenthesized_expression "((uVar7 & 2) == 0)" ( (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" { (expression_statement "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);" (assignment_expression "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9)" identifier = (cast_expression "(byte *)(*param_5)(pbVar10,uVar7,pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*param_5)(pbVar10,uVar7,pbVar9)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(pbVar10,uVar7,pbVar9)" ( identifier , identifier , identifier ))))) ;) (goto_statement "goto LAB_0002062a;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)FUN_0001ff40();" (assignment_expression "pbVar10 = (byte *)FUN_0001ff40()" identifier = (cast_expression "(byte *)FUN_0001ff40()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(pbVar10 < pbVar9)" ( (binary_expression "pbVar10 < pbVar9" identifier < identifier) )) ;) })) (labeled_statement "LAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" statement_identifier : (if_statement "if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" if (parenthesized_expression "(pbVar9 != pbVar10)" ( (binary_expression "pbVar9 != pbVar10" identifier != identifier) )) (compound_statement "{\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" { (expression_statement "uVar7 = 0x3c64;" (assignment_expression "uVar7 = 0x3c64" identifier = number_literal) ;) (labeled_statement "LAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" statement_identifier : (expression_statement "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" (call_expression "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" identifier (argument_list "("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" ( (string_literal ""p == end"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , identifier , (string_literal ""process_attributes"" " string_content ") ))) ;)) }))) }) (else_clause "else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" else (compound_statement "{\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" { (if_statement "if (pbVar9 <= pbVar10) goto LAB_0002040a;" if (parenthesized_expression "(pbVar9 <= pbVar10)" ( (binary_expression "pbVar9 <= pbVar10" identifier <= identifier) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (expression_statement "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Unknown attribute:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Unknown attribute:\n",5)" identifier (argument_list "(0,"  Unknown attribute:\n",5)" ( number_literal , (string_literal ""  Unknown attribute:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "FUN_0001f5b0();" (call_expression "FUN_0001f5b0()" identifier (argument_list "()" ( ))) ;) })))) }))) (labeled_statement "LAB_00020560:\n                        bVar16 = local_84 < local_74;" statement_identifier : (expression_statement "bVar16 = local_84 < local_74;" (assignment_expression "bVar16 = local_84 < local_74" identifier = (binary_expression "local_84 < local_74" identifier < identifier)) ;)) (expression_statement "local_84 = local_84 - local_74;" (assignment_expression "local_84 = local_84 - local_74" identifier = (binary_expression "local_84 - local_74" identifier - identifier)) ;) (expression_statement "local_80 = (local_80 - local_70) - (uint)bVar16;" (assignment_expression "local_80 = (local_80 - local_70) - (uint)bVar16" identifier = (binary_expression "(local_80 - local_70) - (uint)bVar16" (parenthesized_expression "(local_80 - local_70)" ( (binary_expression "local_80 - local_70" identifier - identifier) )) - (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (if_statement "if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;" if (parenthesized_expression "((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9))" ( (binary_expression "(local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" (parenthesized_expression "(local_80 == 0 && local_84 == 0)" ( (binary_expression "local_80 == 0 && local_84 == 0" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "local_84 == 0" identifier == number_literal)) )) || (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" ( (binary_expression "__ptr + *(int *)(local_68 + 0x20) <= pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" identifier + (pointer_expression "*(int *)(local_68 + 0x20)" * (cast_expression "(int *)(local_68 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 0x20)" ( (binary_expression "local_68 + 0x20" identifier + number_literal) ))))) <= identifier) ))) )) (goto_statement "goto LAB_0002040a;" goto statement_identifier ;)) (if_statement "if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;" if (parenthesized_expression "(local_80 == 0 && (uint)(5 < local_84) <= -local_80)" ( (binary_expression "local_80 == 0 && (uint)(5 < local_84) <= -local_80" (binary_expression "local_80 == 0" identifier == number_literal) && (binary_expression "(uint)(5 < local_84) <= -local_80" (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(5 < local_84)" ( (binary_expression "5 < local_84" number_literal < identifier) ))) <= (unary_expression "-local_80" - identifier))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pcVar5 = "Unused bytes at end of section\n";" (assignment_expression "pcVar5 = "Unused bytes at end of section\n"" identifier = (string_literal ""Unused bytes at end of section\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00020443;" goto statement_identifier ;) })) (labeled_statement "LAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" statement_identifier : (if_statement "if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_0002018f;" goto statement_identifier ;))) }) while (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" ( (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" - identifier) < (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(4 < local_54)" ( (binary_expression "4 < local_54" number_literal < identifier) ))))) )) ;) })) (expression_statement "pcVar5 = "Tag section ends prematurely\n";" (assignment_expression "pcVar5 = "Tag section ends prematurely\n"" identifier = (string_literal ""Tag section ends prematurely\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar4);" (call_expression "error(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" else (compound_statement "{\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" identifier (argument_list "(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" ( number_literal , (string_literal ""Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar5,(uint)bVar1,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1,(uint)bVar1)" identifier (argument_list "(pcVar5,(uint)bVar1,(uint)bVar1)" ( identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0002018f:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) }))) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_68 = local_68 + 0x48;" (assignment_expression "local_68 = local_68 + 0x48" identifier = (binary_expression "local_68 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < *(uint *)(param_1 + 0x54))" ( (binary_expression "local_3c < *(uint *)(param_1 + 0x54)" identifier < (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) )) ;) }))) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (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 ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , (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 ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (unary_expression - 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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (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 - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (unary_expression - 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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;))) (for_statement for ( ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))))) ) (compound_statement { })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (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 ))) ;) (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 ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , (string_literal " string_content ") ))) ;)) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) <= IDENT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (unary_expression - IDENT))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;))) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) ;) })) (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3\nFUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000200a0(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" (identifier "FUN_000200a0") (parameter_list "(int param_1,char *param_2,int param_3,code *param_4,code *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "code *param_5" (type_identifier "code") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  byte *__ptr;\n  char *pcVar5;\n  size_t sVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  longlong lVar19;\n  undefined8 uVar20;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  int local_70;\n  int local_68;\n  uint local_54;\n  uint local_50;\n  undefined4 local_4c;\n  uint local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_000b3fd8;\n  bVar18 = 0;\n  uStack_14 = 0x200a9;\n  local_68 = *(int *)(param_1 + 0x5c);\n  if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }\n  return local_4c;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "byte *__ptr;" (type_identifier "byte") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "longlong lVar19;" (type_identifier "longlong") (identifier "lVar19") (; ";")) (declaration "undefined8 uVar20;" (type_identifier "undefined8") (identifier "uVar20") (; ";")) (declaration "uint local_84;" (type_identifier "uint") (identifier "local_84") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "int local_20 [3];" (primitive_type "int") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "puVar3 = PTR_stdout_000b3fd8;" (assignment_expression "puVar3 = PTR_stdout_000b3fd8" (identifier "puVar3") (= "=") (identifier "PTR_stdout_000b3fd8")) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x200a9;" (assignment_expression "uStack_14 = 0x200a9" (identifier "uStack_14") (= "=") (number_literal "0x200a9")) (; ";")) (expression_statement "local_68 = *(int *)(param_1 + 0x5c);" (assignment_expression "local_68 = *(int *)(param_1 + 0x5c)" (identifier "local_68") (= "=") (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x54) == 0) {\n    local_4c = 1;\n  }\n  else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_4c = 1;\n  }" ({ "{") (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" (else "else") (compound_statement "{\n    local_4c = 1;\n    local_3c = 0;\n    do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));\n  }" ({ "{") (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    } while (local_3c < *(uint *)(param_1 + 0x54));" (do "do") (compound_statement "{\n      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }\n      local_3c = local_3c + 1;\n      local_68 = local_68 + 0x48;\n    }" ({ "{") (if_statement "if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3))" (( "(") (binary_expression "(*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)" (parenthesized_expression "(*(int *)(local_68 + 4) == 0x6ffffff5)" (( "(") (binary_expression "*(int *)(local_68 + 4) == 0x6ffffff5" (pointer_expression "*(int *)(local_68 + 4)" (* "*") (cast_expression "(int *)(local_68 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 4)" (( "(") (binary_expression "local_68 + 4" (identifier "local_68") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x6ffffff5")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(local_68 + 4) == param_3)" (( "(") (binary_expression "*(int *)(local_68 + 4) == param_3" (pointer_expression "*(int *)(local_68 + 4)" (* "*") (cast_expression "(int *)(local_68 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 4)" (( "(") (binary_expression "local_68 + 4" (identifier "local_68") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "param_3")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"attributes",5);\n        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);\n        if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"attributes",5);" (assignment_expression "uVar4 = dcgettext(0,"attributes",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"attributes",5)" (identifier "dcgettext") (argument_list "(0,"attributes",5)" (( "(") (number_literal "0") (, ",") (string_literal ""attributes"" (" """) (string_content "attributes") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4);" (assignment_expression "__ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" (identifier "__ptr") (= "=") (cast_expression "(byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" (identifier "FUN_0001bf90") (argument_list "(1,0,*(undefined4 *)(local_68 + 0x20),\n                                     *(undefined4 *)(local_68 + 0x24),uVar4)" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(local_68 + 0x20)" (* "*") (cast_expression "(undefined4 *)(local_68 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(local_68 + 0x24)" (* "*") (cast_expression "(undefined4 *)(local_68 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x24)" (( "(") (binary_expression "local_68 + 0x24" (identifier "local_68") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "uVar4") () ")"))))) (; ";")) (if_statement "if (__ptr == (byte *)0x0) {\n          local_4c = 0;\n        }\n        else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" (if "if") (parenthesized_expression "(__ptr == (byte *)0x0)" (( "(") (binary_expression "__ptr == (byte *)0x0" (identifier "__ptr") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_4c = 0;\n        }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" (else "else") (compound_statement "{\n          bVar1 = *__ptr;\n          if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }\nLAB_0002018f:\n          free(__ptr);\n        }" ({ "{") (expression_statement "bVar1 = *__ptr;" (assignment_expression "bVar1 = *__ptr" (identifier "bVar1") (= "=") (pointer_expression "*__ptr" (* "*") (identifier "__ptr"))) (; ";")) (if_statement "if (bVar1 == 0x41) {\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }\n          else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" (if "if") (parenthesized_expression "(bVar1 == 0x41)" (( "(") (binary_expression "bVar1 == 0x41" (identifier "bVar1") (== "==") (number_literal "0x41")) () ")")) (compound_statement "{\n            local_54 = *(int *)(local_68 + 0x20) - 1;\n            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);\n            pbVar10 = __ptr + 1;\n            if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }\n          }" ({ "{") (expression_statement "local_54 = *(int *)(local_68 + 0x20) - 1;" (assignment_expression "local_54 = *(int *)(local_68 + 0x20) - 1" (identifier "local_54") (= "=") (binary_expression "*(int *)(local_68 + 0x20) - 1" (pointer_expression "*(int *)(local_68 + 0x20)" (* "*") (cast_expression "(int *)(local_68 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);" (assignment_expression "local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" (identifier "local_50") (= "=") (binary_expression "*(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0)" (binary_expression "*(int *)(local_68 + 0x24) + -1" (pointer_expression "*(int *)(local_68 + 0x24)" (* "*") (cast_expression "(int *)(local_68 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x24)" (( "(") (binary_expression "local_68 + 0x24" (identifier "local_68") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(*(int *)(local_68 + 0x20) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(local_68 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(local_68 + 0x20) != 0" (pointer_expression "*(int *)(local_68 + 0x20)" (* "*") (cast_expression "(int *)(local_68 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "pbVar10 = __ptr + 1;" (assignment_expression "pbVar10 = __ptr + 1" (identifier "pbVar10") (= "=") (binary_expression "__ptr + 1" (identifier "__ptr") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_50 != 0 || local_54 != 0) {\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" (if "if") (parenthesized_expression "(local_50 != 0 || local_54 != 0)" (( "(") (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }\n              pcVar5 = "Tag section ends prematurely\n";\nLAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);\n              error(uVar4);\n              local_4c = 0;\n            }" ({ "{") (if_statement "if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" (if "if") (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" (( "(") (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" (- "-") (identifier "local_50")) (< "<") (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(4 < local_54)" (( "(") (binary_expression "4 < local_54" (number_literal "4") (< "<") (identifier "local_54")) () ")"))))) () ")")) (compound_statement "{\n                do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));\n              }" ({ "{") (do_statement "do {\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));" (do "do") (compound_statement "{\n                  lVar2 = CONCAT44(local_50,local_54);\n                  pbVar9 = pbVar10 + 4;\n                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);\n                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);\n                  uVar7 = (uint)lVar19;\n                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }\n                  uVar11 = (uint)(lVar2 + -4);\n                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);\n                  sVar6 = strnlen((char *)pbVar9,uVar11);\n                  uVar7 = sVar6 + 1;\n                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }\n                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);\n                  printf(pcVar5);\n                  FUN_0001fd20();\n                  putc(10,*(FILE **)puVar3);\n                  bVar17 = param_2 == (char *)0x0;\n                  bVar14 = false;\n                  if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }\n                  bVar15 = false;\n                  iVar8 = 4;\n                  pbVar10 = pbVar9;\n                  pbVar13 = &DAT_00076bae;\n                  do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);\n                  pbVar10 = pbVar9 + uVar7;\n                  local_84 = uVar11 - uVar7;\n                  local_80 = iVar12 - (uint)(uVar11 < uVar7);\n                  if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }\nLAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;\n                }" ({ "{") (expression_statement "lVar2 = CONCAT44(local_50,local_54);" (assignment_expression "lVar2 = CONCAT44(local_50,local_54)" (identifier "lVar2") (= "=") (call_expression "CONCAT44(local_50,local_54)" (identifier "CONCAT44") (argument_list "(local_50,local_54)" (( "(") (identifier "local_50") (, ",") (identifier "local_54") () ")")))) (; ";")) (expression_statement "pbVar9 = pbVar10 + 4;" (assignment_expression "pbVar9 = pbVar10 + 4" (identifier "pbVar9") (= "=") (binary_expression "pbVar10 + 4" (identifier "pbVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "lVar19 = (*DAT_000b9dd8)(pbVar10,4);" (assignment_expression "lVar19 = (*DAT_000b9dd8)(pbVar10,4)" (identifier "lVar19") (= "=") (call_expression "(*DAT_000b9dd8)(pbVar10,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(pbVar10,4)" (( "(") (identifier "pbVar10") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar11 = (uint)((ulonglong)lVar19 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)lVar19 >> 0x20)" (identifier "uVar11") (= "=") (call_expression "(uint)((ulonglong)lVar19 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar19 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar19 >> 0x20" (cast_expression "(ulonglong)lVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar7 = (uint)lVar19;" (assignment_expression "uVar7 = (uint)lVar19" (identifier "uVar7") (= "=") (cast_expression "(uint)lVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar19"))) (; ";")) (if_statement "if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }\n                  else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" (if "if") (parenthesized_expression "(local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7))" (( "(") (binary_expression "local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 < uVar11" (identifier "local_50") (< "<") (identifier "uVar11")) (|| "||") (binary_expression "local_50 - uVar11 < (uint)(local_54 < uVar7)" (binary_expression "local_50 - uVar11" (identifier "local_50") (- "-") (identifier "uVar11")) (< "<") (call_expression "(uint)(local_54 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < uVar7)" (( "(") (binary_expression "local_54 < uVar7" (identifier "local_54") (< "<") (identifier "uVar7")) () ")"))))) () ")")) (compound_statement "{\n                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);\n                    error(uVar4,uVar7,local_54);\n                    local_54 = 0;\n                    local_50 = 0;\n                    local_4c = 0;\n                  }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Bad attribute length (%u > %u)\n",5)" (identifier "dcgettext") (argument_list "(0,"Bad attribute length (%u > %u)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad attribute length (%u > %u)\n"" (" """) (string_content "Bad attribute length (%u > %u)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,uVar7,local_54);" (call_expression "error(uVar4,uVar7,local_54)" (identifier "error") (argument_list "(uVar4,uVar7,local_54)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar7") (, ",") (identifier "local_54") () ")"))) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" (else "else") (compound_statement "{\n                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }\n                    bVar14 = local_54 < uVar7;\n                    local_54 = local_54 - uVar7;\n                    local_50 = (local_50 - uVar11) - (uint)bVar14;\n                    lVar2 = lVar19;\n                  }" ({ "{") (if_statement "if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" (if "if") (parenthesized_expression "(uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11)" (( "(") (binary_expression "uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(4 < uVar7) <= -uVar11" (call_expression "(uint)(4 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(4 < uVar7)" (( "(") (binary_expression "4 < uVar7" (number_literal "4") (< "<") (identifier "uVar7")) () ")"))) (<= "<=") (unary_expression "-uVar11" (- "-") (identifier "uVar11")))) () ")")) (compound_statement "{\n                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);\n                      error(uVar4,uVar7);\n                      local_4c = 0;\n                      goto LAB_0002018f;\n                    }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Attribute length of %u is too small\n",5)" (identifier "dcgettext") (argument_list "(0,"Attribute length of %u is too small\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Attribute length of %u is too small\n"" (" """) (string_content "Attribute length of %u is too small") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" (identifier "error") (argument_list "(uVar4,uVar7)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002018f;" (goto "goto") (statement_identifier "LAB_0002018f") (; ";")) (} "}"))) (expression_statement "bVar14 = local_54 < uVar7;" (assignment_expression "bVar14 = local_54 < uVar7" (identifier "bVar14") (= "=") (binary_expression "local_54 < uVar7" (identifier "local_54") (< "<") (identifier "uVar7"))) (; ";")) (expression_statement "local_54 = local_54 - uVar7;" (assignment_expression "local_54 = local_54 - uVar7" (identifier "local_54") (= "=") (binary_expression "local_54 - uVar7" (identifier "local_54") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "local_50 = (local_50 - uVar11) - (uint)bVar14;" (assignment_expression "local_50 = (local_50 - uVar11) - (uint)bVar14" (identifier "local_50") (= "=") (binary_expression "(local_50 - uVar11) - (uint)bVar14" (parenthesized_expression "(local_50 - uVar11)" (( "(") (binary_expression "local_50 - uVar11" (identifier "local_50") (- "-") (identifier "uVar11")) () ")")) (- "-") (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")))) (; ";")) (expression_statement "lVar2 = lVar19;" (assignment_expression "lVar2 = lVar19" (identifier "lVar2") (= "=") (identifier "lVar19")) (; ";")) (} "}")))) (expression_statement "uVar11 = (uint)(lVar2 + -4);" (assignment_expression "uVar11 = (uint)(lVar2 + -4)" (identifier "uVar11") (= "=") (call_expression "(uint)(lVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar2 + -4)" (( "(") (binary_expression "lVar2 + -4" (identifier "lVar2") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);" (assignment_expression "iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20)" (identifier "iVar12") (= "=") (cast_expression "(int)((ulonglong)(lVar2 + -4) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(lVar2 + -4) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar2 + -4) >> 0x20" (call_expression "(ulonglong)(lVar2 + -4)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar2 + -4)" (( "(") (binary_expression "lVar2 + -4" (identifier "lVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "sVar6 = strnlen((char *)pbVar9,uVar11);" (assignment_expression "sVar6 = strnlen((char *)pbVar9,uVar11)" (identifier "sVar6") (= "=") (call_expression "strnlen((char *)pbVar9,uVar11)" (identifier "strnlen") (argument_list "((char *)pbVar9,uVar11)" (( "(") (cast_expression "(char *)pbVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar9")) (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar7 = sVar6 + 1;" (assignment_expression "uVar7 = sVar6 + 1" (identifier "uVar7") (= "=") (binary_expression "sVar6 + 1" (identifier "sVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" (if "if") (parenthesized_expression "((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12))" (( "(") (binary_expression "(uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)" (( "(") (binary_expression "iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12" (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(uVar7 < uVar11) <= (uint)-iVar12" (call_expression "(uint)(uVar7 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 < uVar11)" (( "(") (binary_expression "uVar7 < uVar11" (identifier "uVar7") (< "<") (identifier "uVar11")) () ")"))) (<= "<=") (binary_expression "(uint)-iVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar12")))) () ")"))) () ")")) (compound_statement "{\n                    pcVar5 = "Corrupt attribute section name\n";\n                    goto LAB_00020443;\n                  }" ({ "{") (expression_statement "pcVar5 = "Corrupt attribute section name\n";" (assignment_expression "pcVar5 = "Corrupt attribute section name\n"" (identifier "pcVar5") (= "=") (string_literal ""Corrupt attribute section name\n"" (" """) (string_content "Corrupt attribute section name") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00020443;" (goto "goto") (statement_identifier "LAB_00020443") (; ";")) (} "}"))) (expression_statement "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"Attribute Section: ",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Attribute Section: ",5)" (identifier "dcgettext") (argument_list "(0,"Attribute Section: ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Attribute Section: "" (" """) (string_content "Attribute Section: ") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" (identifier "FUN_0001fd20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" (identifier "putc") (argument_list "(10,*(FILE **)puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (expression_statement "bVar17 = param_2 == (char *)0x0;" (assignment_expression "bVar17 = param_2 == (char *)0x0" (identifier "bVar17") (= "=") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (if_statement "if (!bVar17) {\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" (if "if") (parenthesized_expression "(!bVar17)" (( "(") (unary_expression "!bVar17" (! "!") (identifier "bVar17")) () ")")) (compound_statement "{\n                    iVar8 = strcmp((char *)pbVar9,param_2);\n                    bVar17 = iVar8 == 0;\n                    bVar14 = bVar17;\n                  }" ({ "{") (expression_statement "iVar8 = strcmp((char *)pbVar9,param_2);" (assignment_expression "iVar8 = strcmp((char *)pbVar9,param_2)" (identifier "iVar8") (= "=") (call_expression "strcmp((char *)pbVar9,param_2)" (identifier "strcmp") (argument_list "((char *)pbVar9,param_2)" (( "(") (cast_expression "(char *)pbVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar9")) (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "bVar17 = iVar8 == 0;" (assignment_expression "bVar17 = iVar8 == 0" (identifier "bVar17") (= "=") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar14 = bVar17;" (assignment_expression "bVar14 = bVar17" (identifier "bVar14") (= "=") (identifier "bVar17")) (; ";")) (} "}"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" (identifier "iVar8") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" (identifier "pbVar10") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbVar13 = &DAT_00076bae;" (assignment_expression "pbVar13 = &DAT_00076bae" (identifier "pbVar13") (= "=") (pointer_expression "&DAT_00076bae" (& "&") (identifier "DAT_00076bae"))) (; ";")) (do_statement "do {\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  } while (bVar17);" (do "do") (compound_statement "{\n                    if (iVar8 == 0) break;\n                    iVar8 = iVar8 + -1;\n                    bVar15 = *pbVar10 < *pbVar13;\n                    bVar17 = *pbVar10 == *pbVar13;\n                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;\n                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar10 < *pbVar13;" (assignment_expression "bVar15 = *pbVar10 < *pbVar13" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 < *pbVar13" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar17 = *pbVar10 == *pbVar13;" (assignment_expression "bVar17 = *pbVar10 == *pbVar13" (identifier "bVar17") (= "=") (binary_expression "*pbVar10 == *pbVar13" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar18 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (expression_statement "pbVar10 = pbVar9 + uVar7;" (assignment_expression "pbVar10 = pbVar9 + uVar7" (identifier "pbVar10") (= "=") (binary_expression "pbVar9 + uVar7" (identifier "pbVar9") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "local_84 = uVar11 - uVar7;" (assignment_expression "local_84 = uVar11 - uVar7" (identifier "local_84") (= "=") (binary_expression "uVar11 - uVar7" (identifier "uVar11") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "local_80 = iVar12 - (uint)(uVar11 < uVar7);" (assignment_expression "local_80 = iVar12 - (uint)(uVar11 < uVar7)" (identifier "local_80") (= "=") (binary_expression "iVar12 - (uint)(uVar11 < uVar7)" (identifier "iVar12") (- "-") (call_expression "(uint)(uVar11 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar7)" (( "(") (binary_expression "uVar11 < uVar7" (identifier "uVar11") (< "<") (identifier "uVar7")) () ")"))))) (; ";")) (if_statement "if ((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" (if "if") (parenthesized_expression "((local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20)))" (( "(") (binary_expression "(local_80 != 0 || local_84 != 0) &&\n                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))" (parenthesized_expression "(local_80 != 0 || local_84 != 0)" (( "(") (binary_expression "local_80 != 0 || local_84 != 0" (binary_expression "local_80 != 0" (identifier "local_80") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar10 < __ptr + *(int *)(local_68 + 0x20))" (( "(") (binary_expression "pbVar10 < __ptr + *(int *)(local_68 + 0x20)" (identifier "pbVar10") (< "<") (binary_expression "__ptr + *(int *)(local_68 + 0x20)" (identifier "__ptr") (+ "+") (pointer_expression "*(int *)(local_68 + 0x20)" (* "*") (cast_expression "(int *)(local_68 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }\n                    pcVar5 = "Unused bytes at end of section\n";\n                    goto LAB_00020443;\n                  }" ({ "{") (if_statement "if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" (if "if") (parenthesized_expression "(local_80 != 0 || -local_80 < (uint)(5 < local_84))" (( "(") (binary_expression "local_80 != 0 || -local_80 < (uint)(5 < local_84)" (binary_expression "local_80 != 0" (identifier "local_80") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_80 < (uint)(5 < local_84)" (unary_expression "-local_80" (- "-") (identifier "local_80")) (< "<") (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(5 < local_84)" (( "(") (binary_expression "5 < local_84" (number_literal "5") (< "<") (identifier "local_84")) () ")"))))) () ")")) (compound_statement "{\n                      do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );\n                    }" ({ "{") (do_statement "do {\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      } while( true );" (do "do") (compound_statement "{\n                        bVar1 = *pbVar10;\n                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);\n                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);\n                        uVar7 = (uint)uVar20;\n                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }\n                        local_70 = (int)((ulonglong)uVar20 >> 0x20);\n                        local_74 = (uint)uVar20;\n                        pbVar9 = pbVar10 + local_74;\n                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }\n                        pbVar10 = pbVar10 + 5;\n                        if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }\nLAB_00020560:\n                        bVar16 = local_84 < local_74;\n                        local_84 = local_84 - local_74;\n                        local_80 = (local_80 - local_70) - (uint)bVar16;\n                        pbVar10 = pbVar9;\n                        if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;\n                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;\n                      }" ({ "{") (expression_statement "bVar1 = *pbVar10;" (assignment_expression "bVar1 = *pbVar10" (identifier "bVar1") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (expression_statement "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);" (assignment_expression "uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4)" (identifier "uVar20") (= "=") (call_expression "(*DAT_000b9dd8)(pbVar10 + 1,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(pbVar10 + 1,4)" (( "(") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar11 = (uint)((ulonglong)uVar20 >> 0x20);" (assignment_expression "uVar11 = (uint)((ulonglong)uVar20 >> 0x20)" (identifier "uVar11") (= "=") (call_expression "(uint)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar20 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar7 = (uint)uVar20;" (assignment_expression "uVar7 = (uint)uVar20" (identifier "uVar7") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }\n                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" (if "if") (parenthesized_expression "(local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7))" (( "(") (binary_expression "local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 < uVar11" (identifier "local_80") (< "<") (identifier "uVar11")) (|| "||") (binary_expression "local_80 - uVar11 < (uint)(local_84 < uVar7)" (binary_expression "local_80 - uVar11" (identifier "local_80") (- "-") (identifier "uVar11")) (< "<") (call_expression "(uint)(local_84 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_84 < uVar7)" (( "(") (binary_expression "local_84 < uVar7" (identifier "local_84") (< "<") (identifier "uVar7")) () ")"))))) () ")")) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);\n                          error(uVar4,uVar7,local_84);\n                          local_4c = 0;\n                          uVar20 = CONCAT44(local_80,local_84);\n                        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Bad subsection length (%u > %u)\n",5)" (identifier "dcgettext") (argument_list "(0,"Bad subsection length (%u > %u)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad subsection length (%u > %u)\n"" (" """) (string_content "Bad subsection length (%u > %u)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,uVar7,local_84);" (call_expression "error(uVar4,uVar7,local_84)" (identifier "error") (argument_list "(uVar4,uVar7,local_84)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar7") (, ",") (identifier "local_84") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = CONCAT44(local_80,local_84);" (assignment_expression "uVar20 = CONCAT44(local_80,local_84)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_80,local_84)" (identifier "CONCAT44") (argument_list "(local_80,local_84)" (( "(") (identifier "local_80") (, ",") (identifier "local_84") () ")")))) (; ";")) (} "}")) (else_clause "else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" (else "else") (if_statement "if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" (if "if") (parenthesized_expression "(uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11)" (( "(") (binary_expression "uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11" (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(5 < uVar7) <= -uVar11" (call_expression "(uint)(5 < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(5 < uVar7)" (( "(") (binary_expression "5 < uVar7" (number_literal "5") (< "<") (identifier "uVar7")) () ")"))) (<= "<=") (unary_expression "-uVar11" (- "-") (identifier "uVar11")))) () ")")) (compound_statement "{\n                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);\n                          error(uVar4,uVar7);\n                          local_4c = 0;\n                          goto LAB_0002018f;\n                        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Bad subsection length (%u < 6)\n",5)" (identifier "dcgettext") (argument_list "(0,"Bad subsection length (%u < 6)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad subsection length (%u < 6)\n"" (" """) (string_content "Bad subsection length (%u < 6)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,uVar7);" (call_expression "error(uVar4,uVar7)" (identifier "error") (argument_list "(uVar4,uVar7)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002018f;" (goto "goto") (statement_identifier "LAB_0002018f") (; ";")) (} "}"))))) (expression_statement "local_70 = (int)((ulonglong)uVar20 >> 0x20);" (assignment_expression "local_70 = (int)((ulonglong)uVar20 >> 0x20)" (identifier "local_70") (= "=") (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar20;" (assignment_expression "local_74 = (uint)uVar20" (identifier "local_74") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "pbVar9 = pbVar10 + local_74;" (assignment_expression "pbVar9 = pbVar10 + local_74" (identifier "pbVar9") (= "=") (binary_expression "pbVar10 + local_74" (identifier "pbVar10") (+ "+") (identifier "local_74"))) (; ";")) (if_statement "if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" (if "if") (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) < pbVar9)" (( "(") (binary_expression "__ptr + *(int *)(local_68 + 0x20) < pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" (identifier "__ptr") (+ "+") (pointer_expression "*(int *)(local_68 + 0x20)" (* "*") (cast_expression "(int *)(local_68 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")"))))) (< "<") (identifier "pbVar9")) () ")")) (compound_statement "{\n                    \n                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");\n                        }" ({ "{") (expression_statement "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes");" (call_expression "__assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" (identifier "__assert_fail") (argument_list "("end <= contents + sect->sh_size","../../binutils/readelf.c"\n                                        ,0x3c37,"process_attributes")" (( "(") (string_literal ""end <= contents + sect->sh_size"" (" """) (string_content "end <= contents + sect->sh_size") (" """)) (, ",") (string_literal ""../../binutils/readelf.c"" (" """) (string_content "../../binutils/readelf.c") (" """)) (, ",") (number_literal "0x3c37") (, ",") (string_literal ""process_attributes"" (" """) (string_content "process_attributes") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar10 = pbVar10 + 5;" (assignment_expression "pbVar10 = pbVar10 + 5" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 5" (identifier "pbVar10") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (bVar1 == 2) {\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }\n                        else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" (if "if") (parenthesized_expression "(bVar1 == 2)" (( "(") (binary_expression "bVar1 == 2" (identifier "bVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                          pcVar5 = "Section Attributes:";\nLAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);\n                          printf(pcVar5);\n                          while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }\n                          putchar(10);\nLAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;\n                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }\n                          if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }\n                          bVar14 = true;\n                        }" ({ "{") (expression_statement "pcVar5 = "Section Attributes:";" (assignment_expression "pcVar5 = "Section Attributes:"" (identifier "pcVar5") (= "=") (string_literal ""Section Attributes:"" (" """) (string_content "Section Attributes:") (" """))) (; ";")) (labeled_statement "LAB_000204bb:\n                          pcVar5 = (char *)dcgettext(0,pcVar5,5);" (statement_identifier "LAB_000204bb") (: ":") (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,pcVar5,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar5,5)" (identifier "dcgettext") (argument_list "(0,pcVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar5") (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (while_statement "while( true ) {\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                            pbVar10 = pbVar10 + local_20[0];\n                            if (iVar12 == 0) break;\n                            printf(" %d",iVar12);\n                          }" ({ "{") (expression_statement "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "iVar12") (= "=") (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "FUN_0004f990") (argument_list "(pbVar10,local_20,0,pbVar9)" (( "(") (identifier "pbVar10") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "pbVar9") () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + local_20[0]" (identifier "pbVar10") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "printf(" %d",iVar12);" (call_expression "printf(" %d",iVar12)" (identifier "printf") (argument_list "(" %d",iVar12)" (( "(") (string_literal "" %d"" (" """) (string_content " %d") (" """)) (, ",") (identifier "iVar12") () ")"))) (; ";")) (} "}"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (labeled_statement "LAB_00020512:\n                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" (statement_identifier "LAB_00020512") (: ":") (if_statement "if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;" (if "if") (parenthesized_expression "((param_4 == (code *)0x0) || (!bVar14))" (( "(") (binary_expression "(param_4 == (code *)0x0) || (!bVar14)" (parenthesized_expression "(param_4 == (code *)0x0)" (( "(") (binary_expression "param_4 == (code *)0x0" (identifier "param_4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(!bVar14)" (( "(") (unary_expression "!bVar14" (! "!") (identifier "bVar14")) () ")"))) () ")")) (goto_statement "goto LAB_000203f6;" (goto "goto") (statement_identifier "LAB_000203f6") (; ";")))) (for_statement "for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {\n                          }" (for "for") (( "(") (; ";") (binary_expression "pbVar10 < pbVar9" (identifier "pbVar10") (< "<") (identifier "pbVar9")) (; ";") (assignment_expression "pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(*param_4)(pbVar10,pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*param_4)(pbVar10,pbVar9)" (parenthesized_expression "(*param_4)" (( "(") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")")) (argument_list "(pbVar10,pbVar9)" (( "(") (identifier "pbVar10") (, ",") (identifier "pbVar9") () ")"))))) () ")") (compound_statement "{\n                          }" ({ "{") (} "}"))) (if_statement "if (pbVar9 != pbVar10) {\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" (if "if") (parenthesized_expression "(pbVar9 != pbVar10)" (( "(") (binary_expression "pbVar9 != pbVar10" (identifier "pbVar9") (!= "!=") (identifier "pbVar10")) () ")")) (compound_statement "{\n                            uVar7 = 0x3c5c;\n                            goto LAB_0002088f;\n                          }" ({ "{") (expression_statement "uVar7 = 0x3c5c;" (assignment_expression "uVar7 = 0x3c5c" (identifier "uVar7") (= "=") (number_literal "0x3c5c")) (; ";")) (goto_statement "goto LAB_0002088f;" (goto "goto") (statement_identifier "LAB_0002088f") (; ";")) (} "}"))) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" (identifier "bVar14") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" (else "else") (compound_statement "{\n                          if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }\n                          if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }\n                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);\n                          printf(pcVar5,(uint)bVar1);\n                          bVar14 = false;\nLAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }\n                        }" ({ "{") (if_statement "if (bVar1 == 3) {\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" (if "if") (parenthesized_expression "(bVar1 == 3)" (( "(") (binary_expression "bVar1 == 3" (identifier "bVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                            pcVar5 = "Symbol Attributes:";\n                            goto LAB_000204bb;\n                          }" ({ "{") (expression_statement "pcVar5 = "Symbol Attributes:";" (assignment_expression "pcVar5 = "Symbol Attributes:"" (identifier "pcVar5") (= "=") (string_literal ""Symbol Attributes:"" (" """) (string_content "Symbol Attributes:") (" """))) (; ";")) (goto_statement "goto LAB_000204bb;" (goto "goto") (statement_identifier "LAB_000204bb") (; ";")) (} "}"))) (if_statement "if (bVar1 == 1) {\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" (if "if") (parenthesized_expression "(bVar1 == 1)" (( "(") (binary_expression "bVar1 == 1" (identifier "bVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);\n                            printf(pcVar5);\n                            goto LAB_00020512;\n                          }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"File Attributes\n",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"File Attributes\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"File Attributes\n",5)" (identifier "dcgettext") (argument_list "(0,"File Attributes\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""File Attributes\n"" (" """) (string_content "File Attributes") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (goto_statement "goto LAB_00020512;" (goto "goto") (statement_identifier "LAB_00020512") (; ";")) (} "}"))) (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"Unknown tag: %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Unknown tag: %d\n",5)" (identifier "dcgettext") (argument_list "(0,"Unknown tag: %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unknown tag: %d\n"" (" """) (string_content "Unknown tag: %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1)" (identifier "printf") (argument_list "(pcVar5,(uint)bVar1)" (( "(") (identifier "pcVar5") (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")"))) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_000203f6:\n                          if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" (statement_identifier "LAB_000203f6") (: ":") (if_statement "if ((!bVar15 && !bVar17) == bVar15) {\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }\n                          else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" (if "if") (parenthesized_expression "((!bVar15 && !bVar17) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar17) == bVar15" (parenthesized_expression "(!bVar15 && !bVar17)" (( "(") (binary_expression "!bVar15 && !bVar17" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (compound_statement "{\n                            if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }\nLAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }\n                          }" ({ "{") (if_statement "if (pbVar10 < pbVar9) {\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" (if "if") (parenthesized_expression "(pbVar10 < pbVar9)" (( "(") (binary_expression "pbVar10 < pbVar9" (identifier "pbVar10") (< "<") (identifier "pbVar9")) () ")")) (compound_statement "{\n                              do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);\n                            }" ({ "{") (do_statement "do {\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              } while (pbVar10 < pbVar9);" (do "do") (compound_statement "{\n                                while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }\n                                if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }\n                                pbVar10 = (byte *)FUN_0001ff40();\n                              }" ({ "{") (while_statement "while( true ) {\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  if (uVar7 != 0x20) break;\n                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);\n                                  pbVar10 = pbVar10 + local_20[0];\n                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n                                  printf(pcVar5,uVar4);\n                                  if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }\n                                  if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }\n                                  putc(10,*(FILE **)puVar3);\nLAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;\n                                }" ({ "{") (expression_statement "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "uVar7") (= "=") (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "FUN_0004f990") (argument_list "(pbVar10,local_20,0,pbVar9)" (( "(") (identifier "pbVar10") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "pbVar9") () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + local_20[0]" (identifier "pbVar10") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (uVar7 != 0x20) break;" (if "if") (parenthesized_expression "(uVar7 != 0x20)" (( "(") (binary_expression "uVar7 != 0x20" (identifier "uVar7") (!= "!=") (number_literal "0x20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);" (assignment_expression "uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "uVar4") (= "=") (call_expression "FUN_0004f990(pbVar10,local_20,0,pbVar9)" (identifier "FUN_0004f990") (argument_list "(pbVar10,local_20,0,pbVar9)" (( "(") (identifier "pbVar10") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "pbVar9") () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + local_20[0];" (assignment_expression "pbVar10 = pbVar10 + local_20[0]" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + local_20[0]" (identifier "pbVar10") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" (identifier "dcgettext") (argument_list "(0,"flag = %d, vendor = ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""flag = %d, vendor = "" (" """) (string_content "flag = %d, vendor = ") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5,uVar4);" (call_expression "printf(pcVar5,uVar4)" (identifier "printf") (argument_list "(pcVar5,uVar4)" (( "(") (identifier "pcVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (if_statement "if (pbVar9 == pbVar10) {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" (if "if") (parenthesized_expression "(pbVar9 == pbVar10)" (( "(") (binary_expression "pbVar9 == pbVar10" (identifier "pbVar9") (== "==") (identifier "pbVar10")) () ")")) (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);\n                                    printf(pcVar5);\n                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);\n                                    warn(uVar4);\n                                    goto LAB_00020560;\n                                  }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"<corrupt>\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<corrupt>\n",5)" (identifier "dcgettext") (argument_list "(0,"<corrupt>\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<corrupt>\n"" (" """) (string_content "<corrupt>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);" (assignment_expression "uVar4 = dcgettext(0,"corrupt vendor attribute\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"corrupt vendor attribute\n",5)" (identifier "dcgettext") (argument_list "(0,"corrupt vendor attribute\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt vendor attribute\n"" (" """) (string_content "corrupt vendor attribute") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" (identifier "warn") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (goto_statement "goto LAB_00020560;" (goto "goto") (statement_identifier "LAB_00020560") (; ";")) (} "}"))) (if_statement "if (pbVar10 < pbVar9 + -1) {\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }\n                                  else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" (if "if") (parenthesized_expression "(pbVar10 < pbVar9 + -1)" (( "(") (binary_expression "pbVar10 < pbVar9 + -1" (identifier "pbVar10") (< "<") (binary_expression "pbVar9 + -1" (identifier "pbVar9") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n                                    FUN_0001fd20();\n                                    sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));\n                                    pbVar10 = pbVar10 + sVar6 + 1;\n                                  }" ({ "{") (expression_statement "FUN_0001fd20();" (call_expression "FUN_0001fd20()" (identifier "FUN_0001fd20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));" (assignment_expression "sVar6 = strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" (identifier "sVar6") (= "=") (call_expression "strnlen((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" (identifier "strnlen") (argument_list "((char *)pbVar10,\n                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)))" (( "(") (cast_expression "(char *)pbVar10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar10")) (, ",") (cast_expression "(size_t)(pbVar9 + (-1 - (int)pbVar10))" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(pbVar9 + (-1 - (int)pbVar10))" (( "(") (binary_expression "pbVar9 + (-1 - (int)pbVar10)" (identifier "pbVar9") (+ "+") (parenthesized_expression "(-1 - (int)pbVar10)" (( "(") (binary_expression "-1 - (int)pbVar10" (number_literal "-1") (- "-") (cast_expression "(int)pbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar10"))) () ")"))) () ")"))) () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + sVar6 + 1;" (assignment_expression "pbVar10 = pbVar10 + sVar6 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + sVar6 + 1" (binary_expression "pbVar10 + sVar6" (identifier "pbVar10") (+ "+") (identifier "sVar6")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" (else "else") (compound_statement "{\n                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);\n                                    printf(pcVar5);\n                                    pbVar10 = pbVar9;\n                                  }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"<corrupt>",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<corrupt>",5)" (identifier "dcgettext") (argument_list "(0,"<corrupt>",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<corrupt>"" (" """) (string_content "<corrupt>") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" (identifier "pbVar10") (= "=") (identifier "pbVar9")) (; ";")) (} "}")))) (expression_statement "putc(10,*(FILE **)puVar3);" (call_expression "putc(10,*(FILE **)puVar3)" (identifier "putc") (argument_list "(10,*(FILE **)puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (labeled_statement "LAB_0002062a:\n                                  if (pbVar9 <= pbVar10) goto LAB_00020657;" (statement_identifier "LAB_0002062a") (: ":") (if_statement "if (pbVar9 <= pbVar10) goto LAB_00020657;" (if "if") (parenthesized_expression "(pbVar9 <= pbVar10)" (( "(") (binary_expression "pbVar9 <= pbVar10" (identifier "pbVar9") (<= "<=") (identifier "pbVar10")) () ")")) (goto_statement "goto LAB_00020657;" (goto "goto") (statement_identifier "LAB_00020657") (; ";")))) (} "}"))) (if_statement "if ((uVar7 & 2) == 0) {\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" (if "if") (parenthesized_expression "((uVar7 & 2) == 0)" (( "(") (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" (( "(") (binary_expression "uVar7 & 2" (identifier "uVar7") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);\n                                  goto LAB_0002062a;\n                                }" ({ "{") (expression_statement "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);" (assignment_expression "pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(*param_5)(pbVar10,uVar7,pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*param_5)(pbVar10,uVar7,pbVar9)" (parenthesized_expression "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")) (argument_list "(pbVar10,uVar7,pbVar9)" (( "(") (identifier "pbVar10") (, ",") (identifier "uVar7") (, ",") (identifier "pbVar9") () ")"))))) (; ";")) (goto_statement "goto LAB_0002062a;" (goto "goto") (statement_identifier "LAB_0002062a") (; ";")) (} "}"))) (expression_statement "pbVar10 = (byte *)FUN_0001ff40();" (assignment_expression "pbVar10 = (byte *)FUN_0001ff40()" (identifier "pbVar10") (= "=") (cast_expression "(byte *)FUN_0001ff40()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff40()" (identifier "FUN_0001ff40") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar10 < pbVar9)" (( "(") (binary_expression "pbVar10 < pbVar9" (identifier "pbVar10") (< "<") (identifier "pbVar9")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00020657:\n                            if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" (statement_identifier "LAB_00020657") (: ":") (if_statement "if (pbVar9 != pbVar10) {\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" (if "if") (parenthesized_expression "(pbVar9 != pbVar10)" (( "(") (binary_expression "pbVar9 != pbVar10" (identifier "pbVar9") (!= "!=") (identifier "pbVar10")) () ")")) (compound_statement "{\n                              uVar7 = 0x3c64;\nLAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");\n                            }" ({ "{") (expression_statement "uVar7 = 0x3c64;" (assignment_expression "uVar7 = 0x3c64" (identifier "uVar7") (= "=") (number_literal "0x3c64")) (; ";")) (labeled_statement "LAB_0002088f:\n                    \n                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" (statement_identifier "LAB_0002088f") (: ":") (expression_statement "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes");" (call_expression "__assert_fail("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" (identifier "__assert_fail") (argument_list "("p == end","../../binutils/readelf.c",uVar7,\n                                            "process_attributes")" (( "(") (string_literal ""p == end"" (" """) (string_content "p == end") (" """)) (, ",") (string_literal ""../../binutils/readelf.c"" (" """) (string_content "../../binutils/readelf.c") (" """)) (, ",") (identifier "uVar7") (, ",") (string_literal ""process_attributes"" (" """) (string_content "process_attributes") (" """)) () ")"))) (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" (else "else") (compound_statement "{\n                            if (pbVar9 <= pbVar10) goto LAB_0002040a;\n                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);\n                            printf(pcVar5);\n                            FUN_0001f5b0();\n                          }" ({ "{") (if_statement "if (pbVar9 <= pbVar10) goto LAB_0002040a;" (if "if") (parenthesized_expression "(pbVar9 <= pbVar10)" (( "(") (binary_expression "pbVar9 <= pbVar10" (identifier "pbVar9") (<= "<=") (identifier "pbVar10")) () ")")) (goto_statement "goto LAB_0002040a;" (goto "goto") (statement_identifier "LAB_0002040a") (; ";"))) (expression_statement "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"  Unknown attribute:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Unknown attribute:\n",5)" (identifier "dcgettext") (argument_list "(0,"  Unknown attribute:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Unknown attribute:\n"" (" """) (string_content "  Unknown attribute:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" (identifier "printf") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "FUN_0001f5b0();" (call_expression "FUN_0001f5b0()" (identifier "FUN_0001f5b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_00020560:\n                        bVar16 = local_84 < local_74;" (statement_identifier "LAB_00020560") (: ":") (expression_statement "bVar16 = local_84 < local_74;" (assignment_expression "bVar16 = local_84 < local_74" (identifier "bVar16") (= "=") (binary_expression "local_84 < local_74" (identifier "local_84") (< "<") (identifier "local_74"))) (; ";"))) (expression_statement "local_84 = local_84 - local_74;" (assignment_expression "local_84 = local_84 - local_74" (identifier "local_84") (= "=") (binary_expression "local_84 - local_74" (identifier "local_84") (- "-") (identifier "local_74"))) (; ";")) (expression_statement "local_80 = (local_80 - local_70) - (uint)bVar16;" (assignment_expression "local_80 = (local_80 - local_70) - (uint)bVar16" (identifier "local_80") (= "=") (binary_expression "(local_80 - local_70) - (uint)bVar16" (parenthesized_expression "(local_80 - local_70)" (( "(") (binary_expression "local_80 - local_70" (identifier "local_80") (- "-") (identifier "local_70")) () ")")) (- "-") (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")))) (; ";")) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" (identifier "pbVar10") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if ((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;" (if "if") (parenthesized_expression "((local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9))" (( "(") (binary_expression "(local_80 == 0 && local_84 == 0) ||\n                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" (parenthesized_expression "(local_80 == 0 && local_84 == 0)" (( "(") (binary_expression "local_80 == 0 && local_84 == 0" (binary_expression "local_80 == 0" (identifier "local_80") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(__ptr + *(int *)(local_68 + 0x20) <= pbVar9)" (( "(") (binary_expression "__ptr + *(int *)(local_68 + 0x20) <= pbVar9" (binary_expression "__ptr + *(int *)(local_68 + 0x20)" (identifier "__ptr") (+ "+") (pointer_expression "*(int *)(local_68 + 0x20)" (* "*") (cast_expression "(int *)(local_68 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 0x20)" (( "(") (binary_expression "local_68 + 0x20" (identifier "local_68") (+ "+") (number_literal "0x20")) () ")"))))) (<= "<=") (identifier "pbVar9")) () ")"))) () ")")) (goto_statement "goto LAB_0002040a;" (goto "goto") (statement_identifier "LAB_0002040a") (; ";"))) (if_statement "if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;" (if "if") (parenthesized_expression "(local_80 == 0 && (uint)(5 < local_84) <= -local_80)" (( "(") (binary_expression "local_80 == 0 && (uint)(5 < local_84) <= -local_80" (binary_expression "local_80 == 0" (identifier "local_80") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(5 < local_84) <= -local_80" (call_expression "(uint)(5 < local_84)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(5 < local_84)" (( "(") (binary_expression "5 < local_84" (number_literal "5") (< "<") (identifier "local_84")) () ")"))) (<= "<=") (unary_expression "-local_80" (- "-") (identifier "local_80")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pcVar5 = "Unused bytes at end of section\n";" (assignment_expression "pcVar5 = "Unused bytes at end of section\n"" (identifier "pcVar5") (= "=") (string_literal ""Unused bytes at end of section\n"" (" """) (string_content "Unused bytes at end of section") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00020443;" (goto "goto") (statement_identifier "LAB_00020443") (; ";")) (} "}"))) (labeled_statement "LAB_0002040a:\n                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" (statement_identifier "LAB_0002040a") (: ":") (if_statement "if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;" (if "if") (parenthesized_expression "(local_50 == 0 && local_54 == 0)" (( "(") (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0002018f;" (goto "goto") (statement_identifier "LAB_0002018f") (; ";")))) (} "}")) (while "while") (parenthesized_expression "(local_50 != 0 || -local_50 < (uint)(4 < local_54))" (( "(") (binary_expression "local_50 != 0 || -local_50 < (uint)(4 < local_54)" (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_50 < (uint)(4 < local_54)" (unary_expression "-local_50" (- "-") (identifier "local_50")) (< "<") (call_expression "(uint)(4 < local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(4 < local_54)" (( "(") (binary_expression "4 < local_54" (number_literal "4") (< "<") (identifier "local_54")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar5 = "Tag section ends prematurely\n";" (assignment_expression "pcVar5 = "Tag section ends prematurely\n"" (identifier "pcVar5") (= "=") (string_literal ""Tag section ends prematurely\n"" (" """) (string_content "Tag section ends prematurely") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_00020443:\n              uVar4 = dcgettext(0,pcVar5,5);" (statement_identifier "LAB_00020443") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar5,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar5,5)" (identifier "dcgettext") (argument_list "(0,pcVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar5") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "error(uVar4);" (call_expression "error(uVar4)" (identifier "error") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" (else "else") (compound_statement "{\n            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);\n            printf(pcVar5,(uint)bVar1,(uint)bVar1);\n            local_4c = 0;\n          }" ({ "{") (expression_statement "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" (identifier "dcgettext") (argument_list "(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"\n                                       ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"" (" """) (string_content "Unknown attributes version ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (string_content "(%d) - expecting ") (escape_sequence "\'") (string_content "A") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar5,(uint)bVar1,(uint)bVar1);" (call_expression "printf(pcVar5,(uint)bVar1,(uint)bVar1)" (identifier "printf") (argument_list "(pcVar5,(uint)bVar1,(uint)bVar1)" (( "(") (identifier "pcVar5") (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002018f:\n          free(__ptr);" (statement_identifier "LAB_0002018f") (: ":") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";"))) (} "}")))) (} "}"))) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_68 = local_68 + 0x48;" (assignment_expression "local_68 = local_68 + 0x48" (identifier "local_68") (= "=") (binary_expression "local_68 + 0x48" (identifier "local_68") (+ "+") (number_literal "0x48"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_3c < *(uint *)(param_1 + 0x54))" (( "(") (binary_expression "local_3c < *(uint *)(param_1 + 0x54)" (identifier "local_3c") (< "<") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (; ";")) (} "}")))) (return_statement "return local_4c;" (return "return") (identifier "local_4c") (; ";")) (} "}")))

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

type_1 __regparm3
function_1(type_2 *filedata,char *var_21,type_3 var_1,
                  type_4 *var_33,
                  type_5 *display_proc_gnu_attribute)

{
  type_6 var_5;
  type_7 *puVar2;
  char *pcVar3;
  type_6 *var_4;
  size_t var_17;
  type_3 var_13;
  int var_23;
  type_6 *var_25;
  type_6 *var_10;
  type_3 var_12;
  int var_6;
  type_6 *var_24;
  bool bVar12;
  bool var_34;
  bool bVar14;
  bool bVar15;
  type_6 bVar16;
  type_8 var_11;
  type_8 var_15;
  type_9 var_36;
  type_3 var_27;
  type_3 var_26;
  type_3 var_28;
  int var_39;
  type_10 *var_42;
  type_3 var_8;
  type_3 var_7;
  type_1 local_4c;
  type_3 var_41;
  type_3 var_31;
  type_11 uStack_14;
  
  puVar2 = PTR_stdout_000b3fd8;
  bVar16 = 0;
  uStack_14 = 0x200a9;
  var_42 = filedata->section_headers;
  if ((filedata->file_header).e_shnum == 0) {
    local_4c = 1;
  }
  else {
    local_4c = 1;
    var_41 = 0;
    do {
      if ((var_42->sh_type == 0x6ffffff5) || (var_42->sh_type == var_1)) {
        pcVar3 = (char *)var_2(0,"attributes",5);
        var_4 = (type_6 *)var_3((void *)0x0,filedata,(type_12)var_42->sh_offset,1,var_42->sh_size
                                 ,pcVar3);
        if (var_4 == (type_6 *)0x0) {
          local_4c = 0;
        }
        else {
          var_5 = *var_4;
          if (var_5 == 0x41) {
            var_6 = (int)var_42->sh_size;
            var_8 = var_6 - 1;
            var_7 = *(int *)((int)&var_42->sh_size + 4) + -1 + (type_3)(var_6 != 0);
            var_10 = var_4 + 1;
            if (var_7 != 0 || var_8 != 0) {
              if (var_7 != 0 || -var_7 < (type_3)(4 < var_8)) {
                do {
                  var_15 = var_9(var_7,var_8);
                  var_25 = var_10 + 4;
                  var_11 = (*byte_get)(var_10,4);
                  var_12 = (type_3)(var_11 >> 0x20);
                  var_13 = (type_3)var_11;
                  if (var_7 < var_12 || var_7 - var_12 < (type_3)(var_8 < var_13)) {
                    pcVar3 = (char *)var_2(0,"Bad attribute length (%u > %u)\n",5);
                    var_14(pcVar3,var_13,var_8);
                    var_8 = 0;
                    var_7 = 0;
                    local_4c = 0;
                  }
                  else {
                    if (var_12 == 0 && (type_3)(4 < var_13) <= -var_12) {
                      pcVar3 = (char *)var_2(0,"Attribute length of %u is too small\n",5);
                      var_14(pcVar3,var_13);
                      local_4c = 0;
                      goto LAB_0002018f;
                    }
                    bVar12 = var_8 < var_13;
                    var_8 = var_8 - var_13;
                    var_7 = (var_7 - var_12) - (type_3)bVar12;
                    var_15 = var_11;
                  }
                  var_12 = (type_3)(var_15 - 4);
                  var_6 = (int)(var_15 - 4 >> 0x20);
                  var_17 = var_16((char *)var_25,var_12);
                  var_13 = var_17 + 1;
                  if ((var_13 == 0) || (var_6 == 0 && (type_3)(var_13 < var_12) <= (type_3)-var_6)) {
                    pcVar3 = "Corrupt attribute section name\n";
                    goto LAB_00020443;
                  }
                  pcVar3 = (char *)var_2(0,"Attribute Section: ",5);
                  var_18(pcVar3);
                  var_19(0x7fffffff,(char *)var_25);
                  var_20(10,*(type_13 **)puVar2);
                  bVar15 = var_21 == (char *)0x0;
                  bVar12 = false;
                  if (!bVar15) {
                    var_23 = var_22((char *)var_25,var_21);
                    bVar15 = var_23 == 0;
                    bVar12 = bVar15;
                  }
                  var_34 = false;
                  var_23 = 4;
                  var_10 = var_25;
                  var_24 = &DAT_00076bae;
                  do {
                    if (var_23 == 0) break;
                    var_23 = var_23 + -1;
                    var_34 = *var_10 < *var_24;
                    bVar15 = *var_10 == *var_24;
                    var_10 = var_10 + (type_3)bVar16 * -2 + 1;
                    var_24 = var_24 + (type_3)bVar16 * -2 + 1;
                  } while (bVar15);
                  var_10 = var_25 + var_13;
                  var_27 = var_12 - var_13;
                  var_26 = var_6 - (type_3)(var_12 < var_13);
                  if ((var_26 != 0 || var_27 != 0) && (var_10 < var_4 + (int)var_42->sh_size))
                  {
                    if (var_26 != 0 || -var_26 < (type_3)(5 < var_27)) {
                      do {
                        var_5 = *var_10;
                        var_15 = (*byte_get)(var_10 + 1,4);
                        var_12 = (type_3)(var_15 >> 0x20);
                        var_13 = (type_3)var_15;
                        if (var_26 < var_12 || var_26 - var_12 < (type_3)(var_27 < var_13)) {
                          pcVar3 = (char *)var_2(0,"Bad subsection length (%u > %u)\n",5);
                          var_14(pcVar3,var_13,var_27);
                          local_4c = 0;
                          var_15 = var_9(var_26,var_27);
                        }
                        else if (var_12 == 0 && (type_3)(5 < var_13) <= -var_12) {
                          pcVar3 = (char *)var_2(0,"Bad subsection length (%u < 6)\n",5);
                          var_14(pcVar3,var_13);
                          local_4c = 0;
                          goto LAB_0002018f;
                        }
                        var_39 = (int)(var_15 >> 0x20);
                        var_28 = (type_3)var_15;
                        var_25 = var_10 + var_28;
                        if (var_4 + (int)var_42->sh_size < var_25) {
                    /* WARNING: Subroutine does not return */
                          var_29("end <= contents + sect->sh_size","../../binutils/readelf.c"
                                        ,0x3c37,"process_attributes");
                        }
                        var_10 = var_10 + 5;
                        if (var_5 == 2) {
                          pcVar3 = "Section Attributes:";
LAB_000204bb:
                          pcVar3 = (char *)var_2(0,pcVar3,5);
                          var_18(pcVar3);
                          while( true ) {
                            var_36 = var_30(var_10,&var_31,0,var_25);
                            var_10 = var_10 + var_31;
                            if ((int)var_36 == 0) break;
                            var_18(" %d",(int)var_36);
                          }
                          var_32(10);
LAB_00020512:
                          if ((var_33 == (type_4 *)0x0)
                             || (!bVar12)) goto LAB_000203f6;
                          for (; var_10 < var_25; var_10 = (*var_33)(var_10,var_25))
                          {
                          }
                          if (var_25 != var_10) {
                            var_13 = 0x3c5c;
                            goto LAB_0002088f;
                          }
                          bVar12 = true;
                        }
                        else {
                          if (var_5 == 3) {
                            pcVar3 = "Symbol Attributes:";
                            goto LAB_000204bb;
                          }
                          if (var_5 == 1) {
                            pcVar3 = (char *)var_2(0,"File Attributes\n",5);
                            var_18(pcVar3);
                            goto LAB_00020512;
                          }
                          pcVar3 = (char *)var_2(0,"Unknown tag: %d\n",5);
                          var_18(pcVar3,(type_3)var_5);
                          bVar12 = false;
LAB_000203f6:
                          if ((!var_34 && !bVar15) == var_34) {
                            if (var_10 < var_25) {
                              do {
                                while( true ) {
                                  var_36 = var_30(var_10,&var_31,0,var_25);
                                  var_13 = (type_3)var_36;
                                  var_10 = var_10 + var_31;
                                  if (var_13 != 0x20) break;
                                  var_36 = var_30(var_10,&var_31,0,var_25);
                                  var_10 = var_10 + var_31;
                                  pcVar3 = (char *)var_2(0,"flag = %d, vendor = ",5);
                                  var_18(pcVar3,(int)var_36);
                                  if (var_25 == var_10) {
                                    pcVar3 = (char *)var_2(0,"<corrupt>\n",5);
                                    var_18(pcVar3);
                                    pcVar3 = (char *)var_2(0,"corrupt vendor attribute\n",5);
                                    var_35(pcVar3);
                                    goto LAB_00020560;
                                  }
                                  if (var_10 < var_25 + -1) {
                                    var_19((int)(var_25 + (-1 - (int)var_10)),(char *)var_10);
                                    var_17 = var_16((char *)var_10,
                                                    (size_t)(var_25 + (-1 - (int)var_10)));
                                    var_10 = var_10 + var_17 + 1;
                                  }
                                  else {
                                    pcVar3 = (char *)var_2(0,"<corrupt>",5);
                                    var_18(pcVar3);
                                    var_10 = var_25;
                                  }
                                  var_20(10,*(type_13 **)puVar2);
LAB_0002062a:
                                  if (var_25 <= var_10) goto LAB_00020657;
                                }
                                if ((var_36 & 2) == 0) {
                                  var_10 = (*display_proc_gnu_attribute)(var_10,var_13,var_25);
                                  goto LAB_0002062a;
                                }
                                var_10 = var_37(var_13,var_10,var_25);
                              } while (var_10 < var_25);
                            }
LAB_00020657:
                            if (var_25 != var_10) {
                              var_13 = 0x3c64;
LAB_0002088f:
                    /* WARNING: Subroutine does not return */
                              var_29("p == end","../../binutils/readelf.c",var_13,
                                            "process_attributes");
                            }
                          }
                          else {
                            if (var_25 <= var_10) goto LAB_0002040a;
                            pcVar3 = (char *)var_2(0,"  Unknown attribute:\n",5);
                            var_18(pcVar3);
                            var_38(var_10,var_25);
                          }
                        }
LAB_00020560:
                        bVar14 = var_27 < var_28;
                        var_27 = var_27 - var_28;
                        var_26 = (var_26 - var_39) - (type_3)bVar14;
                        var_10 = var_25;
                        if ((var_26 == 0 && var_27 == 0) ||
                           (var_4 + (int)var_42->sh_size <= var_25)) goto LAB_0002040a;
                        if (var_26 == 0 && (type_3)(5 < var_27) <= -var_26) break;
                      } while( true );
                    }
                    pcVar3 = "Unused bytes at end of section\n";
                    goto LAB_00020443;
                  }
LAB_0002040a:
                  if (var_7 == 0 && var_8 == 0) goto LAB_0002018f;
                } while (var_7 != 0 || -var_7 < (type_3)(4 < var_8));
              }
              pcVar3 = "Tag section ends prematurely\n";
LAB_00020443:
              pcVar3 = (char *)var_2(0,pcVar3,5);
              var_14(pcVar3);
              local_4c = 0;
            }
          }
          else {
            pcVar3 = (char *)var_2(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"
                                       ,5);
            var_18(pcVar3,(type_3)var_5,(type_3)var_5);
            local_4c = 0;
          }
LAB_0002018f:
          var_40(var_4);
        }
      }
      var_41 = var_41 + 1;
      var_42 = var_42 + 1;
    } while (var_41 < (filedata->file_header).e_shnum);
  }
  return local_4c;
}


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

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

undefined4 __regparm3
MASKED(int param_1,char *param_2,int param_3,code *param_4,code *param_5)

{
  byte bVar1;
  longlong lVar2;
  undefined *puVar3;
  undefined4 uVar4;
  byte *__ptr;
  char *pcVar5;
  size_t sVar6;
  uint uVar7;
  int iVar8;
  byte *pbVar9;
  byte *pbVar10;
  uint uVar11;
  int iVar12;
  byte *pbVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  bool bVar17;
  byte bVar18;
  longlong lVar19;
  undefined8 uVar20;
  uint local_84;
  uint local_80;
  uint local_74;
  int local_70;
  int local_68;
  uint local_54;
  uint local_50;
  undefined4 local_4c;
  uint local_3c;
  int local_20 [3];
  undefined4 uStack_14;
  
  puVar3 = PTR_stdout_000b3fd8;
  bVar18 = 0;
  uStack_14 = 0x200a9;
  local_68 = *(int *)(param_1 + 0x5c);
  if (*(int *)(param_1 + 0x54) == 0) {
    local_4c = 1;
  }
  else {
    local_4c = 1;
    local_3c = 0;
    do {
      if ((*(int *)(local_68 + 4) == 0x6ffffff5) || (*(int *)(local_68 + 4) == param_3)) {
        uVar4 = dcgettext(0,"attributes",5);
        __ptr = (byte *)FUN_0001bf90(1,0,*(undefined4 *)(local_68 + 0x20),
                                     *(undefined4 *)(local_68 + 0x24),uVar4);
        if (__ptr == (byte *)0x0) {
          local_4c = 0;
        }
        else {
          bVar1 = *__ptr;
          if (bVar1 == 0x41) {
            local_54 = *(int *)(local_68 + 0x20) - 1;
            local_50 = *(int *)(local_68 + 0x24) + -1 + (uint)(*(int *)(local_68 + 0x20) != 0);
            pbVar10 = __ptr + 1;
            if (local_50 != 0 || local_54 != 0) {
              if (local_50 != 0 || -local_50 < (uint)(4 < local_54)) {
                do {
                  lVar2 = CONCAT44(local_50,local_54);
                  pbVar9 = pbVar10 + 4;
                  lVar19 = (*DAT_000b9dd8)(pbVar10,4);
                  uVar11 = (uint)((ulonglong)lVar19 >> 0x20);
                  uVar7 = (uint)lVar19;
                  if (local_50 < uVar11 || local_50 - uVar11 < (uint)(local_54 < uVar7)) {
                    uVar4 = dcgettext(0,"Bad attribute length (%u > %u)\n",5);
                    error(uVar4,uVar7,local_54);
                    local_54 = 0;
                    local_50 = 0;
                    local_4c = 0;
                  }
                  else {
                    if (uVar11 == 0 && (uint)(4 < uVar7) <= -uVar11) {
                      uVar4 = dcgettext(0,"Attribute length of %u is too small\n",5);
                      error(uVar4,uVar7);
                      local_4c = 0;
                      goto LAB_0002018f;
                    }
                    bVar14 = local_54 < uVar7;
                    local_54 = local_54 - uVar7;
                    local_50 = (local_50 - uVar11) - (uint)bVar14;
                    lVar2 = lVar19;
                  }
                  uVar11 = (uint)(lVar2 + -4);
                  iVar12 = (int)((ulonglong)(lVar2 + -4) >> 0x20);
                  sVar6 = strnlen((char *)pbVar9,uVar11);
                  uVar7 = sVar6 + 1;
                  if ((uVar7 == 0) || (iVar12 == 0 && (uint)(uVar7 < uVar11) <= (uint)-iVar12)) {
                    pcVar5 = "Corrupt attribute section name\n";
                    goto LAB_00020443;
                  }
                  pcVar5 = (char *)dcgettext(0,"Attribute Section: ",5);
                  printf(pcVar5);
                  FUN_0001fd20();
                  putc(10,*(FILE **)puVar3);
                  bVar17 = param_2 == (char *)0x0;
                  bVar14 = false;
                  if (!bVar17) {
                    iVar8 = strcmp((char *)pbVar9,param_2);
                    bVar17 = iVar8 == 0;
                    bVar14 = bVar17;
                  }
                  bVar15 = false;
                  iVar8 = 4;
                  pbVar10 = pbVar9;
                  pbVar13 = &DAT_00076bae;
                  do {
                    if (iVar8 == 0) break;
                    iVar8 = iVar8 + -1;
                    bVar15 = *pbVar10 < *pbVar13;
                    bVar17 = *pbVar10 == *pbVar13;
                    pbVar10 = pbVar10 + (uint)bVar18 * -2 + 1;
                    pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;
                  } while (bVar17);
                  pbVar10 = pbVar9 + uVar7;
                  local_84 = uVar11 - uVar7;
                  local_80 = iVar12 - (uint)(uVar11 < uVar7);
                  if ((local_80 != 0 || local_84 != 0) &&
                     (pbVar10 < __ptr + *(int *)(local_68 + 0x20))) {
                    if (local_80 != 0 || -local_80 < (uint)(5 < local_84)) {
                      do {
                        bVar1 = *pbVar10;
                        uVar20 = (*DAT_000b9dd8)(pbVar10 + 1,4);
                        uVar11 = (uint)((ulonglong)uVar20 >> 0x20);
                        uVar7 = (uint)uVar20;
                        if (local_80 < uVar11 || local_80 - uVar11 < (uint)(local_84 < uVar7)) {
                          uVar4 = dcgettext(0,"Bad subsection length (%u > %u)\n",5);
                          error(uVar4,uVar7,local_84);
                          local_4c = 0;
                          uVar20 = CONCAT44(local_80,local_84);
                        }
                        else if (uVar11 == 0 && (uint)(5 < uVar7) <= -uVar11) {
                          uVar4 = dcgettext(0,"Bad subsection length (%u < 6)\n",5);
                          error(uVar4,uVar7);
                          local_4c = 0;
                          goto LAB_0002018f;
                        }
                        local_70 = (int)((ulonglong)uVar20 >> 0x20);
                        local_74 = (uint)uVar20;
                        pbVar9 = pbVar10 + local_74;
                        if (__ptr + *(int *)(local_68 + 0x20) < pbVar9) {
                    /* WARNING: Subroutine does not return */
                          __assert_fail("end <= contents + sect->sh_size","../../binutils/readelf.c"
                                        ,0x3c37,"process_attributes");
                        }
                        pbVar10 = pbVar10 + 5;
                        if (bVar1 == 2) {
                          pcVar5 = "Section Attributes:";
LAB_000204bb:
                          pcVar5 = (char *)dcgettext(0,pcVar5,5);
                          printf(pcVar5);
                          while( true ) {
                            iVar12 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                            pbVar10 = pbVar10 + local_20[0];
                            if (iVar12 == 0) break;
                            printf(" %d",iVar12);
                          }
                          putchar(10);
LAB_00020512:
                          if ((param_4 == (code *)0x0) || (!bVar14)) goto LAB_000203f6;
                          for (; pbVar10 < pbVar9; pbVar10 = (byte *)(*param_4)(pbVar10,pbVar9)) {
                          }
                          if (pbVar9 != pbVar10) {
                            uVar7 = 0x3c5c;
                            goto LAB_0002088f;
                          }
                          bVar14 = true;
                        }
                        else {
                          if (bVar1 == 3) {
                            pcVar5 = "Symbol Attributes:";
                            goto LAB_000204bb;
                          }
                          if (bVar1 == 1) {
                            pcVar5 = (char *)dcgettext(0,"File Attributes\n",5);
                            printf(pcVar5);
                            goto LAB_00020512;
                          }
                          pcVar5 = (char *)dcgettext(0,"Unknown tag: %d\n",5);
                          printf(pcVar5,(uint)bVar1);
                          bVar14 = false;
LAB_000203f6:
                          if ((!bVar15 && !bVar17) == bVar15) {
                            if (pbVar10 < pbVar9) {
                              do {
                                while( true ) {
                                  uVar7 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                                  pbVar10 = pbVar10 + local_20[0];
                                  if (uVar7 != 0x20) break;
                                  uVar4 = FUN_0004f990(pbVar10,local_20,0,pbVar9);
                                  pbVar10 = pbVar10 + local_20[0];
                                  pcVar5 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
                                  printf(pcVar5,uVar4);
                                  if (pbVar9 == pbVar10) {
                                    pcVar5 = (char *)dcgettext(0,"<corrupt>\n",5);
                                    printf(pcVar5);
                                    uVar4 = dcgettext(0,"corrupt vendor attribute\n",5);
                                    warn(uVar4);
                                    goto LAB_00020560;
                                  }
                                  if (pbVar10 < pbVar9 + -1) {
                                    FUN_0001fd20();
                                    sVar6 = strnlen((char *)pbVar10,
                                                    (size_t)(pbVar9 + (-1 - (int)pbVar10)));
                                    pbVar10 = pbVar10 + sVar6 + 1;
                                  }
                                  else {
                                    pcVar5 = (char *)dcgettext(0,"<corrupt>",5);
                                    printf(pcVar5);
                                    pbVar10 = pbVar9;
                                  }
                                  putc(10,*(FILE **)puVar3);
LAB_0002062a:
                                  if (pbVar9 <= pbVar10) goto LAB_00020657;
                                }
                                if ((uVar7 & 2) == 0) {
                                  pbVar10 = (byte *)(*param_5)(pbVar10,uVar7,pbVar9);
                                  goto LAB_0002062a;
                                }
                                pbVar10 = (byte *)FUN_0001ff40();
                              } while (pbVar10 < pbVar9);
                            }
LAB_00020657:
                            if (pbVar9 != pbVar10) {
                              uVar7 = 0x3c64;
LAB_0002088f:
                    /* WARNING: Subroutine does not return */
                              __assert_fail("p == end","../../binutils/readelf.c",uVar7,
                                            "process_attributes");
                            }
                          }
                          else {
                            if (pbVar9 <= pbVar10) goto LAB_0002040a;
                            pcVar5 = (char *)dcgettext(0,"  Unknown attribute:\n",5);
                            printf(pcVar5);
                            FUN_0001f5b0();
                          }
                        }
LAB_00020560:
                        bVar16 = local_84 < local_74;
                        local_84 = local_84 - local_74;
                        local_80 = (local_80 - local_70) - (uint)bVar16;
                        pbVar10 = pbVar9;
                        if ((local_80 == 0 && local_84 == 0) ||
                           (__ptr + *(int *)(local_68 + 0x20) <= pbVar9)) goto LAB_0002040a;
                        if (local_80 == 0 && (uint)(5 < local_84) <= -local_80) break;
                      } while( true );
                    }
                    pcVar5 = "Unused bytes at end of section\n";
                    goto LAB_00020443;
                  }
LAB_0002040a:
                  if (local_50 == 0 && local_54 == 0) goto LAB_0002018f;
                } while (local_50 != 0 || -local_50 < (uint)(4 < local_54));
              }
              pcVar5 = "Tag section ends prematurely\n";
LAB_00020443:
              uVar4 = dcgettext(0,pcVar5,5);
              error(uVar4);
              local_4c = 0;
            }
          }
          else {
            pcVar5 = (char *)dcgettext(0,"Unknown attributes version \'%c\'(%d) - expecting \'A\'\n"
                                       ,5);
            printf(pcVar5,(uint)bVar1,(uint)bVar1);
            local_4c = 0;
          }
LAB_0002018f:
          free(__ptr);
        }
      }
      local_3c = local_3c + 1;
      local_68 = local_68 + 0x48;
    } while (local_3c < *(uint *)(param_1 + 0x54));
  }
  return local_4c;
}

