
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

bfd_boolean copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)

{
  uint *__dest;
  asymbol **ppaVar1;
  bfd_byte *pbVar2;
  char cVar3;
  bfd_endian bVar4;
  bfd_endian bVar5;
  bfd_flavour bVar6;
  pe_tdata *ppVar7;
  bfd_target *pbVar8;
  bfd_uint64_t bVar9;
  _func_void_bfd_vma_void_ptr *p_Var10;
  bfd_vma bVar11;
  bfd_vma bVar12;
  bfd_vma *pbVar13;
  section_add *psVar14;
  section_rename *psVar15;
  char cVar16;
  bfd_byte *__dest_00;
  int iVar17;
  bfd_architecture bVar18;
  bfd_boolean bVar19;
  int iVar20;
  undefined4 uVar21;
  int iVar22;
  char *pcVar23;
  section_list *psVar24;
  asection *paVar25;
  FILE *__s;
  char *pcVar26;
  char *__format;
  undefined8 uVar27;
  asymbol **ppaVar28;
  asymbol *paVar29;
  long lVar30;
  size_t sVar31;
  size_t sVar32;
  asection *paVar33;
  asection *paVar34;
  ulong uVar35;
  long *plVar36;
  bfd_section *pbVar37;
  int *piVar38;
  char *pcVar39;
  void *pvVar40;
  bfd_vma bVar41;
  bfd_vma bVar42;
  asection *paVar43;
  ulong uVar44;
  ulong uVar45;
  undefined1 *puVar46;
  uint uVar47;
  bfd_section *pbVar48;
  bfd_section *pbVar49;
  bfd_vma *pbVar50;
  ulong *puVar51;
  section_add *psVar52;
  addsym_node *paVar53;
  bfd_vma *pbVar54;
  bfd_vma *pbVar55;
  bfd_vma *pbVar56;
  long lVar57;
  char *pcVar58;
  code *pcVar59;
  byte *pbVar60;
  internal_extra_pe_aouthdr *piVar61;
  byte *pbVar62;
  internal_extra_pe_aouthdr *piVar63;
  long *plVar64;
  ulong uVar65;
  ulong uVar66;
  bfd_vma *pbVar67;
  bfd_byte *pbVar68;
  bool bVar69;
  bool bVar70;
  byte bVar71;
  undefined1 auVar72 [16];
  asymbol **local_110;
  ulong local_100;
  bfd_byte *local_f0;
  ulong local_e8;
  bfd_vma local_c8;
  bfd_vma local_c0;
  bfd_vma local_b8;
  void *local_b0;
  char *local_a8;
  ulong local_a0;
  long *local_98;
  ulong *local_90;
  bfd_byte *syms;
  bfd_byte *strings;
  char file_alignment [20];
  bfd_byte *contents;
  undefined8 local_50;
  
  bVar71 = 0;
  bVar4 = ibfd->xvec->byteorder;
  bVar5 = obfd->xvec->byteorder;
  if ((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)) {
    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);
    non_fatal(pcVar23);
    return 0;
  }
  iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);
  pcVar23 = (char *)0x0;
  if (iVar17 == 0) {
LAB_00109580:
    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);
  }
  else {
    if (ibfd->sections == (bfd_section *)0x0) {
      pcVar23 = bfd_get_archive_filename(ibfd);
      pcVar58 = "error: the input file \'%s\' has no sections";
    }
    else {
      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {
LAB_00109056:
        if (verbose != 0) {
          pcVar23 = obfd->filename;
          pcVar58 = ibfd->xvec->name;
          pcVar39 = obfd->xvec->name;
          pcVar26 = bfd_get_archive_filename(ibfd);
          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);
        }
        lVar57 = 0;
        if (extract_symbol == 0) {
          bVar41 = set_start;
          if (set_start_set == 0) {
            bVar41 = ibfd->start_address;
          }
          lVar57 = bVar41 + change_start;
        }
        if ((obfd->field_0x44 & 7) != 3) {
          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &
                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);
          if (strip_symbols == STRIP_ALL) {
            uVar47 = uVar47 & 0xfffffffe;
          }
          iVar17 = bfd_set_start_address(obfd,lVar57);
          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))
          goto LAB_001091b0;
        }
        bVar18 = bfd_get_arch(ibfd);
        uVar47 = bfd_get_mach(ibfd);
        uVar35 = (ulong)uVar47;
        if (input_arch != (bfd_arch_info_type *)0x0) {
          lVar57 = bfd_get_arch_info(ibfd);
          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {
            bVar18 = input_arch->arch;
            uVar35 = (ulong)(uint)input_arch->mach;
          }
          else {
            pcVar23 = bfd_get_archive_filename(ibfd);
            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",
                                        5);
            non_fatal(pcVar58,pcVar23);
          }
        }
        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);
        if (bVar19 == 0) {
          if ((ibfd->field_0x47 & 4) != 0) {
LAB_0010916a:
            iVar17 = bfd_get_arch(ibfd);
            if (iVar17 == 0) {
              pcVar23 = bfd_get_archive_filename(ibfd);
              pcVar58 = "Unable to recognise the format of the input file `%s\'";
            }
            else {
              uVar27 = bfd_get_mach(ibfd);
              uVar21 = bfd_get_arch(ibfd);
              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);
              pcVar58 = "Output file cannot represent architecture `%s\'";
            }
            pcVar58 = (char *)dcgettext(0,pcVar58,5);
            non_fatal(pcVar58,pcVar23);
            return 0;
          }
          iVar17 = bfd_get_arch(ibfd);
          iVar20 = bfd_get_arch(obfd);
          if (iVar17 != iVar20) goto LAB_0010916a;
        }
        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);
        if (iVar17 == 0) {
LAB_001091b0:
          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);
          return 0;
        }
        bVar6 = obfd->xvec->flavour;
        bVar69 = bVar6 < bfd_target_coff_flavour;
        bVar70 = bVar6 == bfd_target_coff_flavour;
        if (bVar70) {
          lVar57 = 4;
          pbVar60 = (byte *)obfd->xvec->name;
          pbVar62 = &DAT_0011e166;
          do {
            if (lVar57 == 0) break;
            lVar57 = lVar57 + -1;
            bVar69 = *pbVar60 < *pbVar62;
            bVar70 = *pbVar60 == *pbVar62;
            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;
            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;
          } while (bVar70);
          if ((!bVar69 && !bVar70) == bVar69) {
            ppVar7 = (obfd->tdata).pe_obj_data;
            bVar6 = ibfd->xvec->flavour;
            bVar69 = bVar6 < bfd_target_coff_flavour;
            bVar70 = bVar6 == bfd_target_coff_flavour;
            if (bVar70) {
              lVar57 = 4;
              pbVar60 = (byte *)ibfd->xvec->name;
              pbVar62 = &DAT_0011e166;
              do {
                if (lVar57 == 0) break;
                lVar57 = lVar57 + -1;
                bVar69 = *pbVar60 < *pbVar62;
                bVar70 = *pbVar60 == *pbVar62;
                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;
                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;
              } while (bVar70);
              if ((!bVar69 && !bVar70) == bVar69) {
                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;
                piVar63 = &ppVar7->pe_opthdr;
                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {
                  cVar3 = piVar61->MajorLinkerVersion;
                  cVar16 = piVar61->MinorLinkerVersion;
                  uVar21 = *(undefined4 *)&piVar61->field_0x4;
                  piVar63->Magic = piVar61->Magic;
                  piVar63->MajorLinkerVersion = cVar3;
                  piVar63->MinorLinkerVersion = cVar16;
                  *(undefined4 *)&piVar63->field_0x4 = uVar21;
                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)
                  ;
                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)
                  ;
                }
              }
            }
            bVar41 = pe_file_alignment;
            if (pe_file_alignment == 0xffffffffffffffff) {
              pe_file_alignment = 0x200;
              bVar41 = 0x200;
            }
            else {
              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;
            }
            if (pe_heap_commit != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;
            }
            if (pe_heap_reserve != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;
            }
            if (pe_image_base != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).ImageBase = pe_image_base;
            }
            bVar42 = pe_section_alignment;
            if (pe_section_alignment == 0xffffffffffffffff) {
              pe_section_alignment = 0x1000;
              bVar42 = 0x1000;
            }
            else {
              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;
            }
            if (pe_stack_commit != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;
            }
            if (pe_stack_reserve != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;
            }
            if (pe_subsystem != -1) {
              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;
            }
            if (pe_major_subsystem_version != -1) {
              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;
            }
            if (pe_minor_subsystem_version != -1) {
              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;
            }
            if (bVar42 < bVar41) {
              sprintf(file_alignment,"%016lx");
              sprintf((char *)&contents,"%016lx",pe_section_alignment);
              pcVar23 = (char *)dcgettext(0,
                                          "warning: file alignment (0x%s) > section alignment (0x%s)"
                                          ,5);
              non_fatal(pcVar23,file_alignment,&contents);
            }
          }
        }
        ppaVar28 = isympp;
        if (isympp != (asymbol **)0x0) {
          free(isympp);
        }
        if (ppaVar28 != osympp) {
          free(osympp);
        }
        isympp = (asymbol **)0x0;
        osympp = (asymbol **)0x0;
        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);
        if (lVar57 < 0) goto LAB_001091b0;
        osympp = (asymbol **)xmalloc(lVar57);
        isympp = osympp;
        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);
        if ((long)local_100 < 0) goto LAB_001091b0;
        if (local_100 == 0) {
          free(isympp);
          isympp = (asymbol **)0x0;
          osympp = (asymbol **)0x0;
        }
        pcVar59 = setup_section;
        bfd_map_over_sections(ibfd,setup_section,obfd);
        psVar52 = add_sections;
        if ((extract_symbol == 0) &&
           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)
           , psVar52 = add_sections, bVar19 == 0)) {
          status = 1;
          pcVar23 = (char *)dcgettext(0,"error in private header data",5);
          pcVar59 = (code *)ibfd;
          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);
          psVar52 = add_sections;
        }
        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;
            psVar52 = psVar52->next) {
          uVar47 = 0x128;
          psVar24 = find_section_list(psVar52->name,0,0x40);
          if (psVar24 != (section_list *)0x0) {
            uVar47 = psVar24->flags | 0x100;
          }
          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);
          if (lVar57 != 0) {
            pcVar23 = psVar52->name;
            pcVar58 = "can\'t add section \'%s\'";
            goto LAB_00109ad0;
          }
          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);
          psVar52->section = paVar25;
          if (paVar25 == (asection *)0x0) {
            pcVar23 = psVar52->name;
            pcVar58 = "can\'t create section `%s\'";
            goto LAB_00109ad0;
          }
          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);
          if (bVar19 == 0) goto LAB_00109aa8;
          psVar24 = find_section_list(psVar52->name,0,0xc);
          if (psVar24 != (section_list *)0x0) {
            bVar41 = psVar24->vma_val;
            paVar25 = psVar52->section;
            paVar25->field_0x24 = paVar25->field_0x24 | 1;
            paVar25->lma = bVar41;
            paVar25->vma = bVar41;
          }
          pcVar59 = (code *)0x0;
          psVar24 = find_section_list(psVar52->name,0,0x30);
          if (psVar24 != (section_list *)0x0) {
            psVar52->section->lma = psVar24->lma_val;
          }
        }
        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {
          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);
          psVar14->section = paVar25;
          if (paVar25 == (asection *)0x0) {
            pcVar23 = psVar14->name;
            pcVar58 = "error: %s not found, can\'t be updated";
            goto LAB_0010952f;
          }
          paVar25 = paVar25->output_section;
          pcVar23 = (char *)paVar25;
          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);
          if (iVar17 == 0) {
            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);
            return 0;
          }
        }
        if (merge_notes != 0) {
          pcVar23 = ".gnu.build.attributes";
          auVar72 = bfd_get_section_by_name(ibfd);
          paVar25 = auVar72._0_8_;
          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&
             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {
            pcVar23 = (char *)&paVar25->used_by_bfd;
            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);
            if (bVar19 != 0) {
              uVar35 = paVar25->size;
              pcVar23 = (char *)ibfd;
              if (uVar35 == 0) {
                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);
                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);
                merge_notes = 0;
              }
              else {
                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);
                __dest_00 = merged_notes;
                if (iVar17 == 0) {
                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);
                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);
                  free(merged_notes);
                  merged_notes = (bfd_byte *)0x0;
                  merge_notes = 0;
                }
                else {
                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);
                  if (0 < lVar57) {
                    pvVar40 = (void *)xmalloc(lVar57);
                    pcVar23 = (char *)paVar25;
                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);
                    free(pvVar40);
                    if (lVar57 == 0) goto LAB_0010ae6f;
                    local_110 = (asymbol **)0x0;
                    goto LAB_0010b098;
                  }
LAB_0010ae6f:
                  pcVar23 = (char *)0x48;
                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);
                  iVar17 = 0;
                  local_c0 = 0;
                  local_b0 = (void *)0x0;
                  local_c8 = 0;
                  local_b8 = 0;
                  iVar20 = 0;
                  iVar22 = 0;
                  pbVar54 = (bfd_vma *)local_110;
                  pbVar68 = __dest_00;
                  local_e8 = uVar35;
                  while (0xb < local_e8) {
                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);
                    pbVar8 = ibfd->xvec;
                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);
                    *pbVar54 = (bfd_vma)pcVar23;
                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);
                    pbVar8 = ibfd->xvec;
                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;
                    pbVar54[1] = uVar45;
                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);
                    pbVar54[2] = bVar41;
                    if (1 < bVar41 - 0x100) {
                      pcVar23 = "corrupt GNU build attribute note: wrong note type";
                      pcVar58 = (char *)dcgettext(0,
                                                  "corrupt GNU build attribute note: wrong note type"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;
                    uVar65 = lVar57 + 0xc;
                    if (local_e8 < uVar65) {
                      pcVar23 = "corrupt GNU build attribute note: note too big";
                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if (pcVar23 < (asection *)0x2) {
                      pcVar23 = "corrupt GNU build attribute note: name too small";
                      pcVar58 = (char *)dcgettext(0,
                                                  "corrupt GNU build attribute note: name too small"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;
                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);
                    pbVar54[4] = (bfd_vma)pbVar2;
                    local_e8 = local_e8 + (-0xc - lVar57);
                    if (pbVar68[0xc] == '$') {
                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {
                        iVar17 = iVar17 + 1;
                      }
                    }
                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&
                            ((pbVar68[0xd] == 'A' &&
                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {
                      if (pbVar68[0x10] == '2') {
                        iVar22 = iVar22 + 1;
                      }
                      else {
                        if (pbVar68[0x10] != '3') {
                          pcVar23 = "corrupt GNU build attribute note: unsupported version";
                          pcVar58 = (char *)dcgettext(0,
                                                  "corrupt GNU build attribute note: unsupported version"
                                                  ,5);
                          goto LAB_0010b063;
                        }
                        iVar20 = iVar20 + 1;
                      }
                    }
                    if (uVar45 == 4) {
                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);
                      pvVar40 = (void *)0xffffffffffffffff;
                    }
                    else if (uVar45 < 5) {
                      if (uVar45 != 0) {
LAB_0010b046:
                        pcVar23 = "corrupt GNU build attribute note: bad description size";
                        pcVar58 = (char *)dcgettext(0,
                                                  "corrupt GNU build attribute note: bad description size"
                                                  ,5);
                        goto LAB_0010b063;
                      }
                      pvVar40 = (void *)0x0;
                      bVar42 = 0;
                    }
                    else if (uVar45 == 8) {
                      pbVar8 = ibfd->xvec;
                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&
                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);
                        pvVar40 = (void *)0xffffffffffffffff;
                      }
                      else {
                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);
                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);
                      }
                    }
                    else {
                      if (uVar45 != 0x10) goto LAB_0010b046;
                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);
                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);
                    }
                    if (bVar41 == 0x100) {
                      if (bVar42 == 0) {
                        bVar42 = local_c8;
                      }
                      if (pvVar40 == (void *)0x0) {
                        pvVar40 = (void *)local_c0;
                      }
                      pbVar54[6] = bVar42;
                      pbVar54[7] = (bfd_vma)pvVar40;
                      local_c8 = bVar42;
                      local_c0 = (bfd_vma)pvVar40;
                    }
                    else {
                      if (bVar42 == 0) {
                        bVar42 = local_b8;
                      }
                      if (pvVar40 == (void *)0x0) {
                        pvVar40 = local_b0;
                      }
                      pbVar54[6] = bVar42;
                      pbVar54[7] = (bfd_vma)pvVar40;
                      local_b8 = bVar42;
                      local_b0 = pvVar40;
                    }
                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {
                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";
                      pcVar58 = (char *)dcgettext(0,
                                                  "corrupt GNU build attribute note: name not NUL terminated"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    pbVar54 = pbVar54 + 9;
                    pbVar68 = pbVar68 + uVar65;
                  }
                  if (local_e8 == 0) {
                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {
                      pcVar23 = "bad GNU build attribute notes: no known versions detected";
                      pcVar58 = (char *)dcgettext(0,
                                                  "bad GNU build attribute notes: no known versions detected"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||
                       ((iVar22 != 0 && (iVar20 != 0)))) {
                      pcVar23 = "bad GNU build attribute notes: multiple different versions";
                      pcVar58 = (char *)dcgettext(0,
                                                  "bad GNU build attribute notes: multiple different versions"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;
                    uVar47 = -(uint)(iVar17 == 0) & 2;
                    lVar57 = (long)(int)(uVar47 + 1);
                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {
                      pcVar23 = "bad GNU build attribute notes: first note not version note";
                      pcVar58 = (char *)dcgettext(0,
                                                  "bad GNU build attribute notes: first note not version note"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    iVar17 = uVar47 + 2;
                    bVar69 = false;
                    lVar30 = (long)iVar17;
                    pbVar67 = (bfd_vma *)local_110;
LAB_0010b255:
                    pbVar13 = pbVar67;
                    pbVar67 = pbVar13 + 9;
                    if (pbVar67 < pbVar54) {
                      if (pbVar13[0xb] == 0x100) {
                        pcVar23 = (char *)pbVar13[0xc];
                        pbVar55 = (bfd_vma *)0x0;
                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {
                          pvVar40 = (void *)pbVar50[3];
                          pbVar56 = pbVar55;
                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||
                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&
                             ((pbVar55 = pbVar56,
                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==
                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {
                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {
                              if ((((*pbVar50 == *pbVar67) &&
                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&
                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&
                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&
                                 ((0xfffffffffffffff0 < uVar45 ||
                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {
                                pbVar13[0xb] = 0;
                                if (uVar45 < uVar65) {
                                  pbVar50[7] = uVar65;
                                }
                                bVar69 = true;
                                if (iVar20 != 0) {
                                  *(undefined4 *)(pbVar50 + 8) = 1;
                                }
                              }
                              else if (iVar20 == 0) {
                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&
                                   (pbVar56[2] == 0)) {
                                  pbVar56[2] = 0x100;
                                }
                              }
                              else {
                                *(undefined4 *)(pbVar13 + 0x11) = 1;
                                pbVar13[0xb] = 0x101;
                                *(undefined4 *)(pbVar50 + 8) = 1;
                                pbVar50[2] = 0x101;
                              }
                              break;
                            }
                            uVar45 = 0;
                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;
                                uVar65 = uVar65 + 1) {
                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name
                                                                + uVar65 + lVar30) <<
                                                ((char)uVar65 * '\b' & 0x3fU);
                            }
                            bVar41 = *pbVar50;
                            uVar66 = 0;
                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;
                                uVar65 = uVar65 + 1) {
                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)
                                                             )[uVar65] <<
                                                ((char)uVar65 * '\b' & 0x3fU);
                            }
                            uVar44 = 0;
                            uVar45 = uVar45 + uVar66;
                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {
                              uVar44 = (ulong)((int)uVar44 + 1);
                            }
                            if (uVar44 < bVar41 - lVar30) {
                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);
                              goto LAB_0010b3bc;
                            }
                          }
                        }
                      }
                      goto LAB_0010b255;
                    }
                    if (!bVar69) goto LAB_0010b098;
                    paVar43 = (asection *)xmalloc(uVar35);
                    bVar41 = 0;
                    local_f0 = __dest_00;
                    paVar33 = paVar43;
                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {
                      bVar42 = *pbVar67;
                      bVar11 = pbVar67[1];
                      bVar12 = pbVar67[2];
                      sVar31 = bVar11 + bVar42 + 0xc;
                      paVar34 = paVar33;
                      if (bVar12 != 0) {
                        if ((int)pbVar67[8] == 0) {
                          memcpy(paVar33,local_f0,sVar31);
                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);
                        }
                        else {
                          pvVar40 = (void *)((long)&paVar33->name + 4);
                          bVar9 = pbVar67[6];
                          __dest = &paVar33->index;
                          p_Var10 = ibfd->xvec->bfd_putx32;
                          paVar34 = (asection *)((long)__dest + bVar42);
                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {
                            (*p_Var10)(bVar42,paVar33);
                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);
                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);
                            memcpy(__dest,(void *)pbVar67[3],bVar42);
                          }
                          else {
                            (*p_Var10)(bVar42,paVar33);
                            bVar41 = 8;
                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {
                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident
                                               [4] == '\x02') * 8 + 8;
                            }
                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);
                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);
                            memcpy(__dest,(void *)pbVar67[3],bVar42);
                            pbVar8 = ibfd->xvec;
                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&
                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                              (*pbVar8->bfd_putx64)(bVar9,paVar34);
                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);
                              paVar34 = (asection *)&paVar34->next;
                            }
                            else {
                              (*pbVar8->bfd_putx32)(bVar9,paVar34);
                              (*ibfd->xvec->bfd_putx32)
                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));
                              paVar34 = (asection *)&paVar34->id;
                            }
                          }
                        }
                        local_e8 = pbVar67[6];
                        bVar41 = pbVar67[7];
                      }
                      local_f0 = local_f0 + sVar31;
                      paVar33 = paVar34;
                    }
                    sVar31 = (long)paVar33 - (long)paVar43;
                    pcVar23 = (char *)paVar43;
                    memcpy(__dest_00,paVar43,sVar31);
                    free(paVar43);
                    free(local_110);
                    merged_size = sVar31;
                    if (uVar35 != sVar31) {
                      pcVar23 = (char *)paVar25->output_section;
                      if (((asection *)pcVar23 != (asection *)0x0) &&
                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))
                      goto LAB_0010941b;
                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);
                      pcVar23 = (char *)obfd;
                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);
                    }
                  }
                  else {
                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";
                    pcVar58 = (char *)dcgettext(0,
                                                "corrupt GNU build attribute notes: excess data at end"
                                                ,5);
LAB_0010b063:
                    if (pcVar58 != (char *)0x0) {
                      bfd_set_error();
                      pcVar23 = (char *)ibfd;
                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);
                      status = 1;
                    }
LAB_0010b098:
                    free(local_110);
                  }
                  free(merged_notes);
                  merged_notes = (bfd_byte *)0x0;
                  merge_notes = 0;
                  merged_size = 0;
                }
              }
            }
          }
        }
LAB_0010941b:
        pcVar59 = (code *)pcVar23;
        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {
          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);
          pcVar59 = (code *)ibfd;
          if (paVar25 == (asection *)0x0) {
            pcVar23 = psVar52->name;
            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);
          }
          else {
            pcVar23 = "can\'t dump section - it has no contents";
            if ((paVar25->flags & 0x100) != 0) {
              sVar31 = paVar25->size;
              if (sVar31 != 0) {
                __s = fopen(psVar52->filename,"w");
                if (__s == (FILE *)0x0) {
                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);
                  pcVar59 = (code *)0x0;
                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);
                }
                else {
                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);
                  if (iVar17 == 0) {
                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);
                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);
                  }
                  else {
                    pcVar59 = (code *)0x1;
                    sVar32 = fwrite(contents,1,sVar31,__s);
                    if (sVar31 != sVar32) {
                      piVar38 = __errno_location();
                      pcVar58 = strerror(*piVar38);
                      pcVar23 = psVar52->filename;
                      pcVar39 = (char *)dcgettext(0,
                                                  "error writing section contents to %s (error: %s)"
                                                  ,5);
                      non_fatal(pcVar39,pcVar23,pcVar58);
                      free(contents);
                      return 0;
                    }
                  }
                  fclose(__s);
                  free(contents);
                }
                goto LAB_001094a8;
              }
              pcVar23 = "can\'t dump section - it is empty";
            }
            pcVar23 = (char *)dcgettext(0,pcVar23,5);
            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);
          }
LAB_001094a8:
        }
        local_a8 = gnu_debuglink_filename;
        if (gnu_debuglink_filename != (char *)0x0) {
          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");
          if (lVar57 == 0) {
            pcVar59 = (code *)gnu_debuglink_filename;
            local_a8 = (char *)bfd_create_gnu_debuglink_section();
            if (local_a8 == (char *)0x0) {
              pcVar58 = "cannot create debug link section `%s\'";
              pcVar23 = gnu_debuglink_filename;
LAB_00109ad0:
              pcVar58 = (char *)dcgettext(0,pcVar58,5);
              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);
              return 0;
            }
            if (obfd->xvec->flavour == bfd_target_coff_flavour) {
              pbVar37 = obfd->sections;
              pbVar49 = (bfd_section *)0x0;
              if (pbVar37 == (bfd_section *)0x0) {
LAB_0010ad5e:
                uVar45 = 0x1000;
              }
              else {
                do {
                  pbVar48 = pbVar49;
                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&
                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {
                    pbVar48 = pbVar37;
                  }
                  pbVar37 = pbVar37->next;
                  pbVar49 = pbVar48;
                } while (pbVar37 != (bfd_section *)0x0);
                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;
                uVar35 = pbVar48->size + pbVar48->vma;
                uVar45 = 0xffffffffffffffff;
                if (uVar35 < 0xfffffffffffff001) {
                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;
                }
              }
              *(ulong *)(local_a8 + 0x30) = uVar45;
              *(ulong *)(local_a8 + 0x28) = uVar45;
              local_a8[0x24] = local_a8[0x24] | 1;
            }
          }
          else {
            pcVar59 = (code *)obfd->filename;
            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);
            non_fatal(pcVar23);
            gnu_debuglink_filename = (char *)0x0;
            local_a8 = (char *)0x0;
          }
        }
        uVar47 = obfd->section_count;
        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {
          local_a0 = 0;
          local_90 = (ulong *)0x0;
          local_98 = (long *)0x0;
          uVar35 = local_a0;
        }
        else {
          sVar31 = (ulong)uVar47 * 8;
          local_98 = (long *)xmalloc(sVar31);
          contents = (bfd_byte *)local_98;
          bfd_map_over_sections(obfd,get_sections,&contents);
          qsort(local_98,(ulong)uVar47,8,compare_section_lma);
          local_90 = (ulong *)xmalloc(sVar31);
          pcVar59 = (code *)0x0;
          memset(local_90,0,sVar31);
          uVar35 = 0;
          local_a0 = 0;
          if ((gap_fill_set != 0) && (uVar47 != 1)) {
            plVar36 = local_98;
            puVar51 = local_90;
            do {
              pcVar59 = (code *)*plVar36;
              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {
                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;
                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {
                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;
                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);
                  if (iVar17 == 0) {
                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);
                    pcVar59 = (code *)obfd;
                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);
                    status = 1;
                    local_a0 = uVar35;
                    break;
                  }
                  *puVar51 = uVar45;
                  if (uVar35 < uVar45) {
                    uVar35 = uVar45;
                  }
                }
              }
              plVar36 = plVar36 + 1;
              puVar51 = puVar51 + 1;
              local_a0 = uVar35;
            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);
          }
          uVar35 = local_a0;
          if (pad_to_set != 0) {
            pcVar59 = (code *)local_98[uVar47 - 1];
            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;
            if (uVar45 < pad_to) {
              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);
              if (iVar17 == 0) {
                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);
                pcVar59 = (code *)obfd;
                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);
                status = 1;
              }
              else {
                uVar35 = pad_to - uVar45;
                local_90[uVar47 - 1] = uVar35;
                if (uVar35 <= local_a0) {
                  uVar35 = local_a0;
                }
              }
            }
          }
        }
        local_a0 = uVar35;
        local_b0 = (void *)0x0;
        if (convert_debugging != 0) {
          pcVar59 = (code *)isympp;
          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);
        }
        if (strip_symbols - STRIP_DEBUG < 6) {
LAB_00109b5a:
          if (strip_symbols != STRIP_ALL) {
LAB_00109b5f:
            bfd_set_error(0);
            pcVar59 = mark_symbols_used_in_relocations;
            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);
            iVar17 = bfd_get_error();
            if (iVar17 != 0) {
              status = 1;
              return 0;
            }
          }
          ppaVar28 = (asymbol **)xmalloc();
          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;
          osympp = ppaVar28;
          if (local_100 != 0) {
            ppaVar1 = isympp + local_100;
            local_110 = isympp;
            local_100 = 0;
            do {
              iVar17 = add_symbols;
              paVar25 = (asection *)*local_110;
              pbVar37 = paVar25->prev;
              paVar33 = *(asection **)&paVar25->id;
              lVar57 = *(long *)&paVar25->flags;
              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&
                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {
                iVar20 = 0;
                paVar53 = add_sym_list;
                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),
                      iVar22 != 0) {
                  iVar20 = iVar20 + 1;
                  paVar53 = paVar53->next;
                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))
                  goto LAB_00109cb0;
                }
                free(pcVar23);
                paVar53->othersym = "";
                pcVar59 = (code *)obfd;
                paVar29 = create_new_symbol(paVar53,obfd);
                ppaVar28[local_100] = paVar29;
                local_100 = local_100 + 1;
              }
LAB_00109cb0:
              lVar30 = htab_elements(redefine_specific_htab);
              paVar43 = paVar33;
              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {
                local_50._0_4_ = 0;
                local_50._4_4_ = 0;
                pcVar59 = (code *)&contents;
                contents = (bfd_byte *)paVar33;
                lVar30 = htab_find(redefine_specific_htab);
                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&
                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {
                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;
                      psVar15 = psVar15->next) {
                    pcVar59 = (code *)paVar33;
                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);
                    if (iVar17 == 0) {
                      paVar43 = (asection *)psVar15->new_name;
                      break;
                    }
                  }
                }
                *(asection **)&paVar25->id = paVar43;
              }
              pcVar23 = prefix_symbols_string;
              cVar3 = ibfd->xvec->symbol_leading_char;
              if (*(char *)&paVar43->name == cVar3) {
                if (change_leading_char == 0) {
                  if ((remove_leading_char == 0) ||
                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&
                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))
                  goto LAB_00109d39;
LAB_00109f88:
                  paVar43 = (asection *)((long)&paVar43->name + 1);
                  *(asection **)&paVar25->id = paVar43;
                  goto LAB_00109d39;
                }
                cVar3 = obfd->xvec->symbol_leading_char;
                if (cVar3 == '\0') goto LAB_00109f88;
                if (prefix_symbols_string != (char *)0x0) {
                  paVar43 = (asection *)((long)&paVar43->name + 1);
                  *(asection **)&paVar25->id = paVar43;
                  goto LAB_00109fa6;
                }
                *(char *)&paVar43->name = cVar3;
                *(asection **)&paVar25->id = paVar43;
              }
              else {
                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||
                   (cVar3 != '\0')) {
LAB_00109d39:
                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;
                  sVar31 = strlen(pcVar23);
                  sVar32 = strlen((char *)paVar43);
                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);
                  paVar34 = paVar33;
                  pcVar59 = (code *)paVar43;
                }
                else {
LAB_00109fa6:
                  sVar31 = strlen(pcVar23);
                  sVar32 = strlen((char *)paVar43);
                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);
                  paVar33 = (asection *)((long)&paVar34->name + 1);
                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;
                  pcVar59 = (code *)paVar43;
                }
                paVar43 = paVar34;
                pcVar23 = prefix_symbols_string;
                if (prefix_symbols_string != (char *)0x0) {
                  strcpy((char *)paVar33,prefix_symbols_string);
                  sVar31 = strlen(pcVar23);
                  paVar33 = (asection *)((long)&paVar33->name + sVar31);
                }
                strcpy((char *)paVar33,(char *)pcVar59);
                *(asection **)&paVar25->id = paVar43;
              }
LAB_00109da6:
              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;
              if (((ulong)pbVar37 & 0x20) == 0) {
                if ((((ulong)pbVar37 & 0x100) == 0) ||
                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))
                {
                  if ((((uint)local_b8 == 0) &&
                      ((((ulong)pbVar37 & 0x82) != 0 ||
                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||
                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {
LAB_0010a060:
                    pcVar59 = (code *)strip_specific_htab;
                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);
                    if (bVar19 == 0) goto LAB_00109e20;
                  }
                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&
                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {
                    if (((ulong)pbVar37 & 4) == 0) {
                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||
                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||
                         (*(long *)(lVar30 + 0x40) == 0)) {
                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))
                        goto LAB_00109e38;
                        if (discard_locals == LOCALS_START_L) {
                          pcVar59 = (code *)paVar25;
                          iVar17 = bfd_is_local_label(ibfd);
                          goto joined_r0x0010aafb;
                        }
                      }
                      goto LAB_0010a060;
                    }
                    iVar17 = convert_debugging;
                    if (1 < strip_symbols - STRIP_DEBUG) {
joined_r0x0010aafb:
                      if (iVar17 == 0) goto LAB_0010a060;
                    }
                  }
                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;
                }
                else {
                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);
                  if (bVar19 != 0) {
                    pcVar23 = (char *)dcgettext(0,
                                                "not stripping symbol `%s\' because it is named in a relocation"
                                                ,5);
                    non_fatal(pcVar23,paVar43);
                    status = 1;
                  }
LAB_00109e20:
                  pcVar59 = (code *)strip_unneeded_htab;
                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);
                  if (bVar19 == 0) goto LAB_00109e61;
                }
LAB_00109e38:
                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||
                   (pcVar59 = (code *)keep_specific_htab,
                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))
                goto LAB_00109e61;
              }
              else {
                pcVar59 = (code *)strip_specific_htab;
                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);
                if (bVar19 != 0) {
                  pcVar23 = (char *)dcgettext(0,
                                              "not stripping symbol `%s\' because it is named in a relocation"
                                              ,5);
                  pcVar59 = (code *)paVar43;
                  non_fatal(pcVar23);
                  status = 1;
                }
LAB_00109e61:
                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);
                if (bVar19 == 0) {
                  if ((((ulong)pbVar37 & 2) != 0) &&
                     ((weaken != 0 ||
                      (pcVar59 = (code *)weaken_specific_htab,
                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),
                      bVar19 != 0)))) {
                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;
                  }
                  if (lVar57 != 0x12c678) {
                    if ((((ulong)pbVar37 & 0x82) != 0) &&
                       (((pcVar59 = (code *)localize_specific_htab,
                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),
                         bVar19 != 0 ||
                         ((lVar57 = htab_elements(), lVar57 != 0 &&
                          (pcVar59 = (code *)keepglobal_specific_htab,
                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),
                          bVar19 == 0)))) ||
                        ((localize_hidden != 0 &&
                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&
                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&
                           (*(long *)(pcVar23 + 0xf8) != 0)) &&
                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {
                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;
                    }
                    if ((((ulong)pbVar37 & 1) != 0) &&
                       (pcVar59 = (code *)globalize_specific_htab,
                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),
                       bVar19 != 0)) {
                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;
                    }
                  }
                  ppaVar28[local_100] = (asymbol *)paVar25;
                  local_100 = local_100 + 1;
                }
              }
              local_110 = local_110 + 1;
            } while (ppaVar1 != local_110);
          }
          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {
            lVar57 = 0;
            paVar53 = add_sym_list;
            do {
              pcVar23 = paVar53->othersym;
              if (pcVar23 == (char *)0x0) {
                paVar29 = create_new_symbol(paVar53,obfd);
                ppaVar28[local_100] = paVar29;
                local_100 = local_100 + 1;
              }
              else if (*pcVar23 != '\0') {
                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);
                    /* WARNING: Subroutine does not return */
                fatal(pcVar58,pcVar23);
              }
              lVar57 = lVar57 + 1;
              paVar53 = paVar53->next;
            } while (lVar57 < add_symbols);
          }
          bVar19 = convert_debugging;
          ppaVar28[local_100] = (asymbol *)0x0;
          local_100 = local_100 & 0xffffffff;
          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {
            bVar6 = obfd->xvec->flavour;
            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {
              pcVar23 = obfd->xvec->name;
              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",
                                          5);
              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);
              status = 1;
              return 0;
            }
            bVar19 = write_stabs_in_sections_debugging_info
                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,
                                (bfd_size_type *)&contents);
            if (bVar19 == 0) {
              status = 1;
              return 0;
            }
            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);
            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);
            if ((((lVar57 == 0) || (lVar30 == 0)) ||
                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||
               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {
              pcVar23 = "can\'t create debugging section";
LAB_0010a991:
              pcVar23 = (char *)dcgettext(0,pcVar23,5);
              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);
              status = 1;
              return 0;
            }
            *(undefined4 *)(lVar57 + 0x70) = 2;
            *(undefined4 *)(lVar30 + 0x70) = 0;
            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);
            if ((iVar17 == 0) ||
               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {
              pcVar23 = "can\'t set debugging section contents";
              goto LAB_0010a991;
            }
          }
        }
        else {
          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;
          lVar57 = htab_elements(strip_specific_htab);
          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||
                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||
               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||
                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||
              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||
             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||
               (prefix_symbols_string != (char *)0x0)) ||
              ((section_rename_list != (section_rename *)0x0 ||
               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||
                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||
                add_symbols != 0)))))) goto LAB_00109b5a;
        }
        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);
        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);
        bfd_map_over_sections(ibfd,copy_section,obfd);
        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;
            psVar52 = psVar52->next) {
          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)
          ;
          if (bVar19 == 0) {
LAB_00109aa8:
            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);
            return bVar19;
          }
        }
        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {
          paVar25 = psVar14->section->output_section;
          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);
          if (iVar17 == 0) {
            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);
            return 0;
          }
        }
        if (merge_notes != 0) {
          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");
          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||
             ((obfd->xvec->flavour != bfd_target_elf_flavour ||
              (bVar19 = is_merged_note_section
                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,
                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {
            if (is_strip == 0) {
              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);
              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);
            }
          }
          else {
            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);
            if (iVar17 == 0) {
              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);
              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);
              return 0;
            }
          }
          free(merged_notes);
          merged_notes = (bfd_byte *)0x0;
          merge_notes = 0;
        }
        if ((gnu_debuglink_filename != (char *)0x0) &&
           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),
           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {
          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);
          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);
          return 0;
        }
        if (gap_fill_set != 0 || pad_to_set != 0) {
          uVar35 = 0x2000;
          if (local_a0 < 0x2001) {
            uVar35 = local_a0;
          }
          plVar36 = (long *)xmalloc(uVar35);
          lVar57 = (ulong)gap_fill * 0x101010101010101;
          uVar47 = (uint)uVar35;
          if (uVar47 < 8) {
            if ((uVar35 & 4) == 0) {
              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {
                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;
              }
            }
            else {
              *(int *)plVar36 = (int)lVar57;
              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;
            }
          }
          else {
            *plVar36 = lVar57;
            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;
            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);
            for (uVar35 = (ulong)(((int)plVar36 -
                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47
                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {
              *plVar64 = lVar57;
              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;
            }
          }
          if (obfd->section_count != 0) {
            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;
            do {
              uVar35 = *local_90;
              if (uVar35 != 0) {
                lVar57 = *local_98;
                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;
                while( true ) {
                  uVar45 = 0x2000;
                  if (uVar35 < 0x2001) {
                    uVar45 = uVar35;
                  }
                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);
                  if (iVar17 == 0) {
                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);
                    return 0;
                  }
                  lVar30 = lVar30 + uVar45;
                  uVar35 = uVar35 - uVar45;
                  if (uVar35 == 0) break;
                  lVar57 = *local_98;
                }
              }
              local_90 = local_90 + 1;
              local_98 = local_98 + 1;
            } while (puVar51 != local_90);
          }
        }
        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);
        if (bVar19 != 0) {
          if ((use_alt_mach_code != 0) &&
             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {
            pcVar23 = (char *)dcgettext(0,
                                        "this target does not support %lu alternative machine codes"
                                        ,5);
            non_fatal(pcVar23,uVar35);
            if (obfd->xvec->flavour != bfd_target_elf_flavour) {
              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);
              non_fatal(pcVar23);
              return 1;
            }
            pcVar23 = (char *)dcgettext(0,
                                        "treating that number as an absolute e_machine value instead"
                                        ,5);
            non_fatal(pcVar23);
            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =
                 (short)use_alt_mach_code;
          }
          return 1;
        }
        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);
        iVar17 = 0;
        goto LAB_00109580;
      }
      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {
        if (do_elf_stt_common == unchanged) goto LAB_00109056;
        pcVar23 = bfd_get_archive_filename(ibfd);
        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      }
      else {
        pcVar23 = bfd_get_archive_filename(ibfd);
        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
      }
    }
LAB_0010952f:
    pcVar58 = (char *)dcgettext(0,pcVar58,5);
    iVar17 = 0;
    non_fatal(pcVar58,pcVar23);
  }
  return iVar17;
LAB_0010b3bc:
  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;
  *puVar46 = (char)uVar45;
  if (uVar45 == 0) goto LAB_0010b3c1;
  uVar45 = uVar45 >> 8;
  puVar46 = puVar46 + 1;
  goto LAB_0010b3bc;
LAB_0010b3c1:
  pbVar13[0xb] = 0;
  bVar69 = true;
  goto LAB_0010b255;
}



/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)

{
  void *__dest;
  undefined8 uVar1;
  long *plVar2;
  size_t sVar3;
  code *pcVar4;
  size_t sVar5;
  size_t *psVar6;
  void *__dest_00;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  int iVar10;
  int iVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  FILE *__s;
  undefined8 uVar14;
  long *plVar15;
  long lVar16;
  size_t sVar17;
  size_t sVar18;
  long *plVar19;
  long *plVar20;
  ulong uVar21;
  int *piVar22;
  void *pvVar23;
  long lVar24;
  size_t sVar25;
  void *pvVar26;
  ulong uVar27;
  uint uVar28;
  ulong uVar29;
  undefined1 *puVar30;
  size_t *psVar31;
  ulong *puVar32;
  undefined8 *puVar33;
  long *plVar34;
  size_t *psVar35;
  size_t *psVar36;
  size_t *psVar37;
  long lVar38;
  char *pcVar39;
  byte *pbVar40;
  ulong uVar41;
  char cVar42;
  byte *pbVar43;
  undefined8 *puVar44;
  ulong uVar45;
  long *__src;
  long *plVar46;
  size_t *psVar47;
  void *pvVar48;
  bool bVar49;
  bool bVar50;
  byte bVar51;
  size_t *local_110;
  ulong local_100;
  void *local_f0;
  ulong local_e8;
  size_t local_c8;
  size_t local_c0;
  size_t local_b8;
  size_t local_b0;
  long local_a8;
  ulong local_a0;
  long *local_98;
  ulong *local_90;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78 [4];
  long *local_58;
  undefined8 local_50;
  
  bVar51 = 0;
  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);
  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {
    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);
    FUN_0011b660(uVar12);
    return 0;
  }
  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);
  uVar12 = 0;
  if (iVar7 == 0) {
LAB_00109580:
    FUN_0011c0d0(0,param_2,0,uVar12);
  }
  else {
    if (*(long *)(param_1 + 0x90) == 0) {
      uVar12 = FUN_0011bfe0(param_1);
      pcVar39 = "error: the input file \'%s\' has no sections";
    }
    else {
      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {
LAB_00109056:
        if (DAT_0012cb2c != 0) {
          uVar12 = *param_2;
          uVar13 = **(undefined8 **)(param_1 + 8);
          uVar1 = *(undefined8 *)param_2[1];
          uVar14 = FUN_0011bfe0(param_1);
          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);
        }
        lVar38 = 0;
        if (DAT_0012c9f4 == 0) {
          lVar38 = DAT_0012cae0;
          if (DAT_0012cae8 == 0) {
            lVar38 = *(long *)(param_1 + 0xa8);
          }
          lVar38 = lVar38 + _DAT_0012caf0;
        }
        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {
          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &
                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);
          if (DAT_0012cb0c == 7) {
            uVar28 = uVar28 & 0xfffffffe;
          }
          iVar7 = bfd_set_start_address(param_2,lVar38);
          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))
          goto LAB_001091b0;
        }
        uVar8 = bfd_get_arch(param_1);
        uVar9 = bfd_get_mach(param_1);
        if (param_3 != 0) {
          lVar38 = bfd_get_arch_info(param_1);
          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {
            uVar8 = *(undefined4 *)(param_3 + 0xc);
            uVar9 = *(undefined4 *)(param_3 + 0x10);
          }
          else {
            uVar12 = FUN_0011bfe0(param_1);
            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);
            FUN_0011b660(uVar13,uVar12);
          }
        }
        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);
        if (iVar7 == 0) {
          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {
LAB_0010916a:
            iVar7 = bfd_get_arch(param_1);
            if (iVar7 == 0) {
              uVar12 = FUN_0011bfe0(param_1);
              pcVar39 = "Unable to recognise the format of the input file `%s\'";
            }
            else {
              uVar12 = bfd_get_mach(param_1);
              uVar8 = bfd_get_arch(param_1);
              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);
              pcVar39 = "Output file cannot represent architecture `%s\'";
            }
            uVar13 = dcgettext(0,pcVar39,5);
            FUN_0011b660(uVar13,uVar12);
            return 0;
          }
          iVar7 = bfd_get_arch(param_1);
          iVar10 = bfd_get_arch(param_2);
          if (iVar7 != iVar10) goto LAB_0010916a;
        }
        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);
        if (iVar7 == 0) {
LAB_001091b0:
          FUN_0011c0d0(0,param_1,0,0);
          return 0;
        }
        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);
        bVar49 = uVar28 < 2;
        bVar50 = uVar28 == 2;
        if (bVar50) {
          lVar38 = 4;
          pbVar40 = *(byte **)param_2[1];
          pbVar43 = &DAT_0011e166;
          do {
            if (lVar38 == 0) break;
            lVar38 = lVar38 + -1;
            bVar49 = *pbVar40 < *pbVar43;
            bVar50 = *pbVar40 == *pbVar43;
            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;
            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;
          } while (bVar50);
          if ((!bVar49 && !bVar50) == bVar49) {
            lVar38 = param_2[0x1f];
            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);
            bVar49 = uVar28 < 2;
            bVar50 = uVar28 == 2;
            if (bVar50) {
              lVar16 = 4;
              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);
              pbVar43 = &DAT_0011e166;
              do {
                if (lVar16 == 0) break;
                lVar16 = lVar16 + -1;
                bVar49 = *pbVar40 < *pbVar43;
                bVar50 = *pbVar40 == *pbVar43;
                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;
                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;
              } while (bVar50);
              if ((!bVar49 && !bVar50) == bVar49) {
                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);
                puVar44 = (undefined8 *)(lVar38 + 200);
                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {
                  *puVar44 = *puVar33;
                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;
                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;
                }
              }
            }
            uVar21 = DAT_0012b4f8;
            if (DAT_0012b4f8 == 0xffffffffffffffff) {
              DAT_0012b4f8 = 0x200;
              uVar21 = 0x200;
            }
            else {
              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;
            }
            if (DAT_0012b4f0 != -1) {
              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;
            }
            if (DAT_0012b4e8 != -1) {
              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;
            }
            if (DAT_0012b4e0 != -1) {
              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;
            }
            uVar29 = DAT_0012b4d8;
            if (DAT_0012b4d8 == 0xffffffffffffffff) {
              DAT_0012b4d8 = 0x1000;
              uVar29 = 0x1000;
            }
            else {
              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;
            }
            if (DAT_0012b4d0 != -1) {
              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;
            }
            if (DAT_0012b4c8 != -1) {
              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;
            }
            if (DAT_0012b4c4 != -1) {
              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;
            }
            if (DAT_0012b4c2 != -1) {
              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;
            }
            if (DAT_0012b4c0 != -1) {
              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;
            }
            if (uVar29 < uVar21) {
              sprintf((char *)local_78,"%016lx");
              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);
              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);
              FUN_0011b660(uVar12,local_78,&local_58);
            }
          }
        }
        plVar15 = DAT_0012cb40;
        if (DAT_0012cb40 != (long *)0x0) {
          free(DAT_0012cb40);
        }
        if (plVar15 != DAT_0012cb38) {
          free(DAT_0012cb38);
        }
        DAT_0012cb40 = (long *)0x0;
        DAT_0012cb38 = (long *)0x0;
        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);
        if (lVar38 < 0) goto LAB_001091b0;
        DAT_0012cb38 = (long *)xmalloc(lVar38);
        DAT_0012cb40 = DAT_0012cb38;
        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);
        if ((long)local_100 < 0) goto LAB_001091b0;
        if (local_100 == 0) {
          free(DAT_0012cb40);
          DAT_0012cb40 = (long *)0x0;
          DAT_0012cb38 = (long *)0x0;
        }
        bfd_map_over_sections(param_1,FUN_001083b0,param_2);
        puVar33 = DAT_0012caa8;
        if ((DAT_0012c9f4 == 0) &&
           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,
           iVar7 == 0)) {
          DAT_0012cb24 = 1;
          uVar12 = dcgettext(0,"error in private header data",5);
          FUN_0011c0d0(0,param_1,0,uVar12);
          puVar33 = DAT_0012caa8;
        }
        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;
            puVar33 = (undefined8 *)*puVar33) {
          uVar28 = 0x128;
          lVar38 = FUN_00107360(puVar33[1],0,0x40);
          if (lVar38 != 0) {
            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;
          }
          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);
          if (lVar38 != 0) {
            lVar38 = puVar33[1];
            pcVar39 = "can\'t add section \'%s\'";
            goto LAB_00109ad0;
          }
          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);
          puVar33[5] = lVar38;
          if (lVar38 == 0) {
            lVar38 = puVar33[1];
            pcVar39 = "can\'t create section `%s\'";
            goto LAB_00109ad0;
          }
          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);
          if (iVar7 == 0) goto LAB_00109aa8;
          lVar38 = FUN_00107360(puVar33[1],0,0xc);
          if (lVar38 != 0) {
            uVar12 = *(undefined8 *)(lVar38 + 0x18);
            lVar38 = puVar33[5];
            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;
            *(undefined8 *)(lVar38 + 0x30) = uVar12;
            *(undefined8 *)(lVar38 + 0x28) = uVar12;
          }
          lVar38 = FUN_00107360(puVar33[1],0,0x30);
          if (lVar38 != 0) {
            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);
          }
        }
        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {
          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);
          puVar44[5] = lVar38;
          if (lVar38 == 0) {
            uVar12 = puVar44[1];
            pcVar39 = "error: %s not found, can\'t be updated";
            goto LAB_0010952f;
          }
          uVar12 = *(undefined8 *)(lVar38 + 0x68);
          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);
          if (iVar7 == 0) {
            FUN_0011c0d0(0,param_2,uVar12,0);
            return 0;
          }
        }
        if ((((DAT_0012cb20 != 0) &&
             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&
            (DAT_0012cb20 != 0)) &&
           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&
            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {
          uVar21 = *(ulong *)(lVar38 + 0x38);
          if (uVar21 == 0) {
            uVar12 = dcgettext(0,"warning: note section is empty",5);
            FUN_0011c0d0(0,param_1,lVar38,uVar12);
            DAT_0012cb20 = 0;
          }
          else {
            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);
            __dest_00 = DAT_0012cb18;
            if (iVar7 == 0) {
              uVar12 = dcgettext(0,"warning: could not load note section",5);
              FUN_0011c0d0(0,param_1,lVar38,uVar12);
              free(DAT_0012cb18);
              DAT_0012cb18 = (void *)0x0;
              DAT_0012cb20 = 0;
            }
            else {
              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);
              if (0 < lVar16) {
                pvVar23 = (void *)xmalloc(lVar16);
                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);
                free(pvVar23);
                if (lVar16 == 0) goto LAB_0010ae6f;
                local_110 = (size_t *)0x0;
                goto LAB_0010b098;
              }
LAB_0010ae6f:
              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);
              iVar7 = 0;
              local_c0 = 0;
              local_b0 = 0;
              local_c8 = 0;
              local_b8 = 0;
              iVar10 = 0;
              iVar11 = 0;
              psVar35 = local_110;
              pvVar23 = __dest_00;
              local_e8 = uVar21;
              while (0xb < local_e8) {
                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);
                lVar16 = *(long *)(param_1 + 8);
                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;
                *psVar35 = uVar41;
                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);
                lVar16 = *(long *)(param_1 + 8);
                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;
                psVar35[1] = uVar29;
                sVar17 = (**(code **)(lVar16 + 0x38))();
                psVar35[2] = sVar17;
                if (1 < sVar17 - 0x100) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);
                  goto LAB_0010b063;
                }
                uVar45 = uVar41 + uVar29 + 0xc;
                if (local_e8 < uVar45) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);
                  goto LAB_0010b063;
                }
                if (uVar41 < 2) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);
                  goto LAB_0010b063;
                }
                sVar18 = (long)pvVar23 + uVar41 + 0xc;
                psVar35[3] = (long)pvVar23 + 0xc;
                psVar35[4] = sVar18;
                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));
                if (*(char *)((long)pvVar23 + 0xc) == '$') {
                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&
                     (*(char *)((long)pvVar23 + 0xe) == '1')) {
                    iVar7 = iVar7 + 1;
                  }
                }
                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&
                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&
                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&
                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {
                  if (*(char *)((long)pvVar23 + 0x10) == '2') {
                    iVar11 = iVar11 + 1;
                  }
                  else {
                    if (*(char *)((long)pvVar23 + 0x10) != '3') {
                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5
                                        );
                      goto LAB_0010b063;
                    }
                    iVar10 = iVar10 + 1;
                  }
                }
                if (uVar29 == 4) {
                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();
                  sVar25 = 0xffffffffffffffff;
                }
                else if (uVar29 < 5) {
                  if (uVar29 != 0) {
LAB_0010b046:
                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)
                    ;
                    goto LAB_0010b063;
                  }
                  sVar25 = 0;
                  sVar18 = 0;
                }
                else if (uVar29 == 8) {
                  lVar16 = *(long *)(param_1 + 8);
                  if ((*(int *)(lVar16 + 8) == 5) &&
                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {
                    sVar18 = (**(code **)(lVar16 + 0x20))();
                    sVar25 = 0xffffffffffffffff;
                  }
                  else {
                    sVar18 = (**(code **)(lVar16 + 0x38))();
                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();
                  }
                }
                else {
                  if (uVar29 != 0x10) goto LAB_0010b046;
                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);
                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();
                }
                if (sVar17 == 0x100) {
                  if (sVar18 == 0) {
                    sVar18 = local_c8;
                  }
                  if (sVar25 == 0) {
                    sVar25 = local_c0;
                  }
                  psVar35[6] = sVar18;
                  psVar35[7] = sVar25;
                  local_c8 = sVar18;
                  local_c0 = sVar25;
                }
                else {
                  if (sVar18 == 0) {
                    sVar18 = local_b8;
                  }
                  if (sVar25 == 0) {
                    sVar25 = local_b0;
                  }
                  psVar35[6] = sVar18;
                  psVar35[7] = sVar25;
                  local_b8 = sVar18;
                  local_b0 = sVar25;
                }
                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5
                                    );
                  goto LAB_0010b063;
                }
                psVar35 = psVar35 + 9;
                pvVar23 = (void *)(uVar45 + (long)pvVar23);
              }
              if (local_e8 == 0) {
                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5
                                    );
                  goto LAB_0010b063;
                }
                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||
                   ((iVar11 != 0 && (iVar10 != 0)))) {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",
                                     5);
                  goto LAB_0010b063;
                }
                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;
                uVar28 = -(uint)(iVar7 == 0) & 2;
                lVar16 = (long)(int)(uVar28 + 1);
                if (*(char *)(local_110[3] + lVar16) != '\x01') {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",
                                     5);
                  goto LAB_0010b063;
                }
                iVar7 = uVar28 + 2;
                bVar49 = false;
                lVar24 = (long)iVar7;
                psVar47 = local_110;
LAB_0010b255:
                psVar6 = psVar47;
                psVar47 = psVar6 + 9;
                if (psVar47 < psVar35) {
                  if (psVar6[0xb] == 0x100) {
                    pvVar23 = (void *)psVar6[0xc];
                    psVar36 = (size_t *)0x0;
                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {
                      pvVar26 = (void *)psVar31[3];
                      psVar37 = psVar36;
                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||
                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&
                         ((psVar36 = psVar37,
                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&
                          (psVar31[2] == 0x100)))) {
                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {
                          if ((((*psVar31 == *psVar47) &&
                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&
                              ((uVar29 = psVar31[7], uVar29 != 0 &&
                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&
                             ((0xfffffffffffffff0 < uVar29 ||
                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {
                            psVar6[0xb] = 0;
                            if (uVar29 < uVar41) {
                              psVar31[7] = uVar41;
                            }
                            bVar49 = true;
                            if (iVar10 != 0) {
                              *(undefined4 *)(psVar31 + 8) = 1;
                            }
                          }
                          else if (iVar10 == 0) {
                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&
                               (psVar37[2] == 0)) {
                              psVar37[2] = 0x100;
                            }
                          }
                          else {
                            *(undefined4 *)(psVar6 + 0x11) = 1;
                            psVar6[0xb] = 0x101;
                            *(undefined4 *)(psVar31 + 8) = 1;
                            psVar31[2] = 0x101;
                          }
                          break;
                        }
                        uVar29 = 0;
                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;
                            uVar41 = uVar41 + 1) {
                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<
                                            ((char)uVar41 * '\b' & 0x3fU);
                        }
                        sVar17 = *psVar31;
                        uVar45 = 0;
                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)
                        {
                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))
                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);
                        }
                        uVar27 = 0;
                        uVar29 = uVar29 + uVar45;
                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {
                          uVar27 = (ulong)((int)uVar27 + 1);
                        }
                        if (uVar27 < sVar17 - lVar24) {
                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);
                          goto LAB_0010b3bc;
                        }
                      }
                    }
                  }
                  goto LAB_0010b255;
                }
                if (!bVar49) goto LAB_0010b098;
                pvVar26 = (void *)xmalloc(uVar21);
                sVar17 = 0;
                local_f0 = __dest_00;
                pvVar23 = pvVar26;
                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {
                  sVar25 = *psVar47;
                  sVar5 = psVar47[2];
                  sVar18 = psVar47[1] + sVar25 + 0xc;
                  pvVar48 = pvVar23;
                  if (sVar5 != 0) {
                    if ((int)psVar47[8] == 0) {
                      memcpy(pvVar23,local_f0,sVar18);
                      pvVar48 = (void *)((long)pvVar23 + sVar18);
                    }
                    else {
                      sVar3 = psVar47[6];
                      __dest = (void *)((long)pvVar23 + 0xc);
                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);
                      pvVar48 = (void *)((long)__dest + sVar25);
                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {
                        (*pcVar4)(sVar25,pvVar23);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);
                        memcpy(__dest,(void *)psVar47[3],sVar25);
                      }
                      else {
                        (*pcVar4)();
                        cVar42 = '\b';
                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {
                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +
                                   '\b';
                        }
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);
                        memcpy(__dest,(void *)psVar47[3],sVar25);
                        lVar16 = *(long *)(param_1 + 8);
                        if ((*(int *)(lVar16 + 8) == 5) &&
                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {
                          (**(code **)(lVar16 + 0x30))();
                          (**(code **)(*(long *)(param_1 + 8) + 0x30))
                                    (psVar47[7],(void *)((long)pvVar48 + 8));
                          pvVar48 = (void *)((long)pvVar48 + 0x10);
                        }
                        else {
                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);
                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)
                          ;
                          pvVar48 = (void *)((long)pvVar48 + 8);
                        }
                      }
                    }
                    local_e8 = psVar47[6];
                    sVar17 = psVar47[7];
                  }
                  local_f0 = (void *)((long)local_f0 + sVar18);
                  pvVar23 = pvVar48;
                }
                sVar17 = (long)pvVar23 - (long)pvVar26;
                memcpy(__dest_00,pvVar26,sVar17);
                free(pvVar26);
                free(local_110);
                DAT_0012cb10 = sVar17;
                if (uVar21 != sVar17) {
                  if ((*(long *)(lVar38 + 0x68) != 0) &&
                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),
                     iVar7 != 0)) goto LAB_0010941b;
                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);
                  FUN_0011c0d0(0,param_2,lVar38,uVar12);
                }
              }
              else {
                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);
LAB_0010b063:
                if (lVar16 != 0) {
                  bfd_set_error(0x11);
                  FUN_0011c0d0(0,param_1,lVar38,lVar16);
                  DAT_0012cb24 = 1;
                }
LAB_0010b098:
                free(local_110);
              }
              free(DAT_0012cb18);
              DAT_0012cb18 = (void *)0x0;
              DAT_0012cb20 = 0;
              DAT_0012cb10 = 0;
            }
          }
        }
LAB_0010941b:
        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)
        {
          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);
          if (lVar38 == 0) {
            uVar12 = puVar33[1];
            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);
          }
          else {
            pcVar39 = "can\'t dump section - it has no contents";
            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {
              sVar17 = *(size_t *)(lVar38 + 0x38);
              if (sVar17 != 0) {
                __s = fopen((char *)puVar33[2],"w");
                if (__s == (FILE *)0x0) {
                  uVar12 = dcgettext(0,"could not open section dump file",5);
                  FUN_0011c0d0(puVar33[2],0,0,uVar12);
                }
                else {
                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);
                  if (iVar7 == 0) {
                    uVar12 = dcgettext(0,"could not retrieve section contents",5);
                    FUN_0011c0d0(0,param_1,lVar38,uVar12);
                  }
                  else {
                    sVar18 = fwrite(local_58,1,sVar17,__s);
                    if (sVar17 != sVar18) {
                      piVar22 = __errno_location();
                      pcVar39 = strerror(*piVar22);
                      uVar12 = puVar33[2];
                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);
                      FUN_0011b660(uVar13,uVar12,pcVar39);
                      free(local_58);
                      return 0;
                    }
                  }
                  fclose(__s);
                  free(local_58);
                }
                goto LAB_001094a8;
              }
              pcVar39 = "can\'t dump section - it is empty";
            }
            uVar12 = dcgettext(0,pcVar39,5);
            FUN_0011c0d0(0,param_1,lVar38,uVar12);
          }
LAB_001094a8:
        }
        local_a8 = DAT_0012ca90;
        if (DAT_0012ca90 != 0) {
          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");
          if (lVar38 == 0) {
            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);
            if (local_a8 == 0) {
              pcVar39 = "cannot create debug link section `%s\'";
              lVar38 = DAT_0012ca90;
LAB_00109ad0:
              uVar12 = dcgettext(0,pcVar39,5);
              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);
              return 0;
            }
            if (*(int *)(param_2[1] + 8) == 2) {
              lVar38 = param_2[0x12];
              lVar16 = 0;
              if (lVar38 == 0) {
LAB_0010ad5e:
                uVar29 = 0x1000;
              }
              else {
                do {
                  lVar24 = lVar16;
                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&
                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {
                    lVar24 = lVar38;
                  }
                  lVar38 = *(long *)(lVar38 + 0x10);
                  lVar16 = lVar24;
                } while (lVar38 != 0);
                if (lVar24 == 0) goto LAB_0010ad5e;
                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);
                uVar29 = 0xffffffffffffffff;
                if (uVar21 < 0xfffffffffffff001) {
                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;
                }
              }
              *(ulong *)(local_a8 + 0x30) = uVar29;
              *(ulong *)(local_a8 + 0x28) = uVar29;
              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;
            }
          }
          else {
            uVar12 = *param_2;
            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);
            FUN_0011b660(uVar13,uVar12);
            DAT_0012ca90 = 0;
            local_a8 = 0;
          }
        }
        uVar28 = *(uint *)(param_2 + 0x14);
        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {
          local_a0 = 0;
          local_90 = (ulong *)0x0;
          local_98 = (long *)0x0;
          uVar21 = local_a0;
        }
        else {
          sVar17 = (ulong)uVar28 * 8;
          local_98 = (long *)xmalloc(sVar17);
          local_58 = local_98;
          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);
          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);
          local_90 = (ulong *)xmalloc(sVar17);
          memset(local_90,0,sVar17);
          uVar21 = 0;
          local_a0 = 0;
          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {
            plVar15 = local_98;
            puVar32 = local_90;
            do {
              lVar38 = *plVar15;
              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {
                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);
                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {
                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;
                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);
                  if (iVar7 == 0) {
                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);
                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);
                    DAT_0012cb24 = 1;
                    local_a0 = uVar21;
                    break;
                  }
                  *puVar32 = uVar29;
                  if (uVar21 < uVar29) {
                    uVar21 = uVar29;
                  }
                }
              }
              plVar15 = plVar15 + 1;
              puVar32 = puVar32 + 1;
              local_a0 = uVar21;
            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);
          }
          uVar21 = local_a0;
          if (DAT_0012cac8 != 0) {
            lVar38 = local_98[uVar28 - 1];
            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);
            if (uVar29 < DAT_0012cac0) {
              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));
              if (iVar7 == 0) {
                uVar12 = dcgettext(0,"can\'t add padding",5);
                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);
                DAT_0012cb24 = 1;
              }
              else {
                uVar21 = DAT_0012cac0 - uVar29;
                local_90[uVar28 - 1] = uVar21;
                if (uVar21 <= local_a0) {
                  uVar21 = local_a0;
                }
              }
            }
          }
        }
        local_a0 = uVar21;
        local_b0 = 0;
        if (DAT_0012ca88 != 0) {
          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);
        }
        if (DAT_0012cb0c - 2U < 6) {
LAB_00109b5a:
          if (DAT_0012cb0c != 7) {
LAB_00109b5f:
            bfd_set_error(0);
            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);
            iVar7 = bfd_get_error();
            if (iVar7 != 0) {
              DAT_0012cb24 = 1;
              return 0;
            }
          }
          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);
          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;
          DAT_0012cb38 = plVar15;
          if (local_100 != 0) {
            plVar34 = DAT_0012cb40 + local_100;
            local_110 = (size_t *)DAT_0012cb40;
            local_100 = 0;
            do {
              iVar7 = DAT_0012ca18;
              plVar2 = (long *)*local_110;
              uVar28 = *(uint *)(plVar2 + 3);
              plVar19 = (long *)plVar2[1];
              lVar38 = plVar2[4];
              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&
                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {
                iVar10 = 0;
                plVar46 = DAT_0012ca20;
                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {
                  iVar10 = iVar10 + 1;
                  plVar46 = (long *)*plVar46;
                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))
                  goto LAB_00109cb0;
                }
                free(pcVar39);
                plVar46[5] = (long)"";
                lVar16 = FUN_00108200(plVar46,param_2);
                plVar15[local_100] = lVar16;
                local_100 = local_100 + 1;
              }
LAB_00109cb0:
              lVar16 = htab_elements(DAT_0012ca30);
              plVar46 = plVar19;
              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {
                local_50 = 0;
                local_58 = plVar19;
                lVar16 = htab_find(DAT_0012ca30,&local_58);
                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&
                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {
                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;
                      puVar33 = (undefined8 *)puVar33[3]) {
                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);
                    if (iVar7 == 0) {
                      plVar46 = (long *)puVar33[1];
                      break;
                    }
                  }
                }
                plVar2[1] = (long)plVar46;
              }
              pcVar39 = DAT_0012ca08;
              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);
              if ((char)*plVar46 == cVar42) {
                if (DAT_0012ca7c == 0) {
                  if ((DAT_0012ca78 == 0) ||
                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&
                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;
LAB_00109f88:
                  plVar46 = (long *)((long)plVar46 + 1);
                  plVar2[1] = (long)plVar46;
                  goto LAB_00109d39;
                }
                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;
                if (DAT_0012ca08 != (char *)0x0) {
                  plVar46 = (long *)((long)plVar46 + 1);
                  plVar2[1] = (long)plVar46;
                  goto LAB_00109fa6;
                }
                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);
                plVar2[1] = (long)plVar46;
              }
              else {
                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||
                   (cVar42 != '\0')) {
LAB_00109d39:
                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;
                  sVar17 = strlen(pcVar39);
                  sVar18 = strlen((char *)plVar46);
                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);
                  plVar20 = plVar19;
                  __src = plVar46;
                }
                else {
LAB_00109fa6:
                  sVar17 = strlen(pcVar39);
                  sVar18 = strlen((char *)plVar46);
                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);
                  plVar19 = (long *)((long)plVar20 + 1);
                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);
                  __src = plVar46;
                }
                plVar46 = plVar20;
                pcVar39 = DAT_0012ca08;
                if (DAT_0012ca08 != (char *)0x0) {
                  strcpy((char *)plVar19,DAT_0012ca08);
                  sVar17 = strlen(pcVar39);
                  plVar19 = (long *)((long)plVar19 + sVar17);
                }
                strcpy((char *)plVar19,(char *)__src);
                plVar2[1] = (long)plVar46;
              }
LAB_00109da6:
              if (DAT_0012cb0c == 7) goto LAB_00109e38;
              if ((uVar28 & 0x20) == 0) {
                if (((uVar28 & 0x100) == 0) ||
                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {
                  if ((((uint)local_b8 == 0) &&
                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||
                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {
LAB_0010a060:
                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                    if (iVar7 == 0) goto LAB_00109e20;
                  }
                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&
                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {
                    if ((uVar28 & 4) == 0) {
                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||
                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||
                         (*(long *)(lVar16 + 0x40) == 0)) {
                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;
                        if (DAT_0012cb08 == 1) {
                          iVar7 = bfd_is_local_label(param_1,plVar2);
                          goto joined_r0x0010aafb;
                        }
                      }
                      goto LAB_0010a060;
                    }
                    iVar7 = DAT_0012ca88;
                    if (1 < DAT_0012cb0c - 2U) {
joined_r0x0010aafb:
                      if (iVar7 == 0) goto LAB_0010a060;
                    }
                  }
                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;
                }
                else {
                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                  if (iVar7 != 0) {
                    uVar12 = dcgettext(0,
                                       "not stripping symbol `%s\' because it is named in a relocation"
                                       ,5);
                    FUN_0011b660(uVar12,plVar46);
                    DAT_0012cb24 = 1;
                  }
LAB_00109e20:
                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);
                  if (iVar7 == 0) goto LAB_00109e61;
                }
LAB_00109e38:
                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||
                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;
              }
              else {
                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                if (iVar7 != 0) {
                  uVar12 = dcgettext(0,
                                     "not stripping symbol `%s\' because it is named in a relocation"
                                     ,5);
                  FUN_0011b660(uVar12,plVar46);
                  DAT_0012cb24 = 1;
                }
LAB_00109e61:
                iVar7 = FUN_001082f0(plVar2[4]);
                if (iVar7 == 0) {
                  if (((uVar28 & 2) != 0) &&
                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)
                      ))) {
                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;
                  }
                  if (lVar38 != 0x12c678) {
                    if (((uVar28 & 0x82) != 0) &&
                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||
                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&
                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||
                        ((DAT_0012ca70 != 0 &&
                         ((((lVar38 = *plVar2, lVar38 != 0 &&
                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&
                           (*(long *)(lVar38 + 0xf8) != 0)) &&
                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {
                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;
                    }
                    if (((uVar28 & 1) != 0) &&
                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {
                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;
                    }
                  }
                  plVar15[local_100] = (long)plVar2;
                  local_100 = local_100 + 1;
                }
              }
              local_110 = local_110 + 1;
            } while ((size_t *)plVar34 != local_110);
          }
          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {
            lVar38 = 0;
            plVar34 = DAT_0012ca20;
            do {
              pcVar39 = (char *)plVar34[5];
              if (pcVar39 == (char *)0x0) {
                lVar16 = FUN_00108200(plVar34,param_2);
                plVar15[local_100] = lVar16;
                local_100 = local_100 + 1;
              }
              else if (*pcVar39 != '\0') {
                uVar12 = dcgettext(0,"\'before=%s\' not found",5);
                    /* WARNING: Subroutine does not return */
                FUN_0011b5c0(uVar12,pcVar39);
              }
              lVar38 = lVar38 + 1;
              plVar34 = (long *)*plVar34;
            } while (lVar38 < DAT_0012ca18);
          }
          iVar7 = DAT_0012ca88;
          plVar15[local_100] = 0;
          local_100 = local_100 & 0xffffffff;
          if ((iVar7 != 0) && (local_b0 != 0)) {
            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);
            if ((iVar7 != 2) && (iVar7 != 5)) {
              uVar12 = *(undefined8 *)param_2[1];
              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);
              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);
              DAT_0012cb24 = 1;
              return 0;
            }
            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);
            if (iVar7 == 0) {
              DAT_0012cb24 = 1;
              return 0;
            }
            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);
            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);
            if ((((lVar38 == 0) || (lVar16 == 0)) ||
                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||
               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {
              pcVar39 = "can\'t create debugging section";
LAB_0010a991:
              uVar12 = dcgettext(0,pcVar39,5);
              FUN_0011c0d0(0,param_2,0,uVar12);
              DAT_0012cb24 = 1;
              return 0;
            }
            *(undefined4 *)(lVar38 + 0x70) = 2;
            *(undefined4 *)(lVar16 + 0x70) = 0;
            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);
            if ((iVar7 == 0) ||
               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {
              pcVar39 = "can\'t set debugging section contents";
              goto LAB_0010a991;
            }
          }
        }
        else {
          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;
          lVar38 = htab_elements(DAT_0012ca68);
          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||
                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||
               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||
                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||
              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||
             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))
              || ((DAT_0012cb48 != (undefined8 *)0x0 ||
                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||
                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||
                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;
        }
        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);
        bfd_map_over_sections(param_1,FUN_00108b90,param_2);
        bfd_map_over_sections(param_1,FUN_00108850,param_2);
        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;
            puVar33 = (undefined8 *)*puVar33) {
          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);
          if (iVar7 == 0) {
LAB_00109aa8:
            FUN_0011c0d0(0,param_2,puVar33[5],0);
            return iVar7;
          }
        }
        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {
          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);
          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);
          if (iVar7 == 0) {
            FUN_0011c0d0(0,param_2,uVar12,0);
            return 0;
          }
        }
        if (DAT_0012cb20 != 0) {
          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");
          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||
             ((*(int *)(param_2[1] + 8) != 5 ||
              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {
            if (DAT_0012c508 == 0) {
              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);
              FUN_0011c0d0(0,param_2,lVar38,uVar12);
            }
          }
          else {
            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);
            if (iVar7 == 0) {
              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);
              FUN_0011c0d0(0,param_2,lVar38,uVar12);
              return 0;
            }
          }
          free(DAT_0012cb18);
          DAT_0012cb18 = (void *)0x0;
          DAT_0012cb20 = 0;
        }
        if ((DAT_0012ca90 != 0) &&
           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,
           iVar7 == 0)) {
          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);
          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);
          return 0;
        }
        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {
          uVar21 = 0x2000;
          if (local_a0 < 0x2001) {
            uVar21 = local_a0;
          }
          plVar15 = (long *)xmalloc(uVar21);
          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;
          uVar28 = (uint)uVar21;
          if (uVar28 < 8) {
            if ((uVar21 & 4) == 0) {
              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {
                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;
              }
            }
            else {
              *(int *)plVar15 = (int)lVar38;
              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;
            }
          }
          else {
            *plVar15 = lVar38;
            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;
            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);
            for (uVar21 = (ulong)(((int)plVar15 -
                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28
                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {
              *plVar34 = lVar38;
              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;
            }
          }
          if (*(int *)(param_2 + 0x14) != 0) {
            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;
            do {
              uVar21 = *local_90;
              if (uVar21 != 0) {
                lVar38 = *local_98;
                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;
                while( true ) {
                  uVar29 = 0x2000;
                  if (uVar21 < 0x2001) {
                    uVar29 = uVar21;
                  }
                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);
                  if (iVar7 == 0) {
                    FUN_0011c0d0(0,param_2,*local_98,0);
                    return 0;
                  }
                  lVar16 = lVar16 + uVar29;
                  uVar21 = uVar21 - uVar29;
                  if (uVar21 == 0) break;
                  lVar38 = *local_98;
                }
              }
              local_90 = local_90 + 1;
              local_98 = local_98 + 1;
            } while (puVar32 != local_90);
          }
        }
        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);
        if (iVar7 != 0) {
          if ((DAT_0012cab8 != 0) &&
             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {
            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);
            FUN_0011b660(uVar12,lVar38);
            if (*(int *)(param_2[1] + 8) != 5) {
              uVar12 = dcgettext(0,"ignoring the alternative value",5);
              FUN_0011b660(uVar12);
              return 1;
            }
            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);
            FUN_0011b660(uVar12);
            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;
          }
          return 1;
        }
        uVar12 = dcgettext(0,"error copying private BFD data",5);
        iVar7 = 0;
        goto LAB_00109580;
      }
      uVar28 = DAT_0012ca84;
      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {
        if (DAT_0012ca80 == 0) goto LAB_00109056;
        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);
        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      }
      else {
        uVar12 = FUN_0011bfe0(param_1);
        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
      }
    }
LAB_0010952f:
    uVar13 = dcgettext(0,pcVar39,5);
    iVar7 = 0;
    FUN_0011b660(uVar13,uVar12);
  }
  return iVar7;
LAB_0010b3bc:
  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;
  *puVar30 = (char)uVar29;
  if (uVar29 == 0) goto LAB_0010b3c1;
  uVar29 = uVar29 >> 8;
  puVar30 = puVar30 + 1;
  goto LAB_0010b3bc;
LAB_0010b3c1:
  psVar6[0xb] = 0;
  bVar49 = true;
  goto LAB_0010b255;
}


PUSH R15
MOV R15,RDI
PUSH R14
PUSH R13
MOV R13,RSI
PUSH R12
PUSH RBP
MOV RBP,RDX
PUSH RBX
SUB RSP,0xe8
MOV RAX,qword ptr [RDI + 0x8]
MOV RDX,qword ptr [RSI + 0x8]
MOV EAX,dword ptr [RAX + 0xc]
MOV EDX,dword ptr [RDX + 0xc]
CMP EAX,EDX
SETNZ CL
CMP EAX,0x2
SETNZ AL
TEST CL,AL
JZ 0x00109000
CMP EDX,0x2
JNZ 0x001091e0
MOVZX ESI,byte ptr [R15 + 0x44]
MOV RDI,R13
AND ESI,0x7
CALL 0x001044e0
XOR ECX,ECX
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00109580
CMP qword ptr [R15 + 0x90],0x0
JZ 0x001095f0
MOV RAX,qword ptr [R15 + 0x8]
CMP dword ptr [RAX + 0x8],0x5
JZ 0x00109056
MOV EDX,dword ptr [0x0012ca84]
CMP EDX,0x1
JZ 0x00109048
AND EDX,0x1
JNZ 0x00109550
MOV ESI,dword ptr [0x0012ca80]
TEST ESI,ESI
JNZ 0x00109518
MOV ECX,dword ptr [0x0012cb2c]
TEST ECX,ECX
JNZ 0x00109598
MOV EDX,dword ptr [0x0012c9f4]
XOR ESI,ESI
TEST EDX,EDX
JNZ 0x0010908c
MOV EAX,dword ptr [0x0012cae8]
MOV RSI,qword ptr [0x0012cae0]
TEST EAX,EAX
JZ 0x00109208
ADD RSI,qword ptr [0x0012caf0]
MOVZX EAX,byte ptr [R13 + 0x44]
AND EAX,0x7
CMP AL,0x3
JZ 0x001090ec
MOV EBX,dword ptr [R15 + 0x44]
MOV EAX,dword ptr [0x0012cab4]
MOV RDX,qword ptr [R13 + 0x8]
SHR EBX,0x5
AND EBX,0xfffff
OR EAX,EBX
MOV EBX,dword ptr [0x0012cab0]
NOT EBX
AND EBX,dword ptr [RDX + 0x14]
AND EBX,EAX
CMP dword ptr [0x0012cb0c],0x7
JNZ 0x001090ca
AND EBX,0xfffffffe
MOV RDI,R13
CALL 0x001048a0
TEST EAX,EAX
JZ 0x001091b0
MOV ESI,EBX
MOV RDI,R13
CALL 0x00104630
TEST EAX,EAX
JZ 0x001091b0
MOV RDI,R15
CALL 0x00104550
MOV RDI,R15
MOV R12D,EAX
CALL 0x00104650
MOV EBX,EAX
TEST RBP,RBP
JZ 0x0010912d
MOV RDI,R15
CALL 0x00104430
TEST RAX,RAX
JZ 0x00109126
MOV RDI,R15
CALL 0x00104430
MOV EAX,dword ptr [RAX + 0xc]
TEST EAX,EAX
JNZ 0x00109648
MOV R12D,dword ptr [RBP + 0xc]
MOV EBX,dword ptr [RBP + 0x10]
MOV RAX,qword ptr [R13 + 0x8]
MOV EDX,EBX
MOV ESI,R12D
MOV RDI,R13
CALL qword ptr [RAX + 0x290]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00109218
TEST byte ptr [R15 + 0x47],0x4
JNZ 0x0010916a
MOV RDI,R15
CALL 0x00104550
MOV RDI,R13
MOV EBP,EAX
CALL 0x00104550
CMP EBP,EAX
JZ 0x00109218
MOV RDI,R15
CALL 0x00104550
TEST EAX,EAX
JNZ 0x00109610
MOV RDI,R15
CALL 0x0011bfe0
MOV EDX,0x5
LEA RSI,[0x121340]
MOV RBP,RAX
XOR EDI,EDI
CALL 0x00104240
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x001091c2
XOR ECX,ECX
XOR EDX,EDX
MOV RSI,R15
XOR EDI,EDI
XOR EAX,EAX
XOR EBX,EBX
CALL 0x0011c0d0
ADD RSP,0xe8
MOV EAX,EBX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EDX,0x5
LEA RSI,[0x1211f8]
XOR EDI,EDI
XOR EBX,EBX
CALL 0x00104240
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x001091c2
MOV RSI,qword ptr [R15 + 0xa8]
JMP 0x00109085
MOVZX ESI,byte ptr [R15 + 0x44]
MOV RDI,R13
AND ESI,0x7
CALL 0x001044e0
TEST EAX,EAX
JZ 0x001091b0
MOV RAX,qword ptr [R13 + 0x8]
CMP dword ptr [RAX + 0x8],0x2
JZ 0x00109700
MOV RBX,qword ptr [0x0012cb40]
TEST RBX,RBX
JZ 0x0010924e
MOV RDI,RBX
CALL 0x00104920
MOV RDI,qword ptr [0x0012cb38]
CMP RBX,RDI
JZ 0x0010925f
CALL 0x00104920
MOV RAX,qword ptr [R15 + 0x8]
MOV RDI,R15
MOV qword ptr [0x0012cb40],0x0
MOV qword ptr [0x0012cb38],0x0
CALL qword ptr [RAX + 0x1f0]
TEST RAX,RAX
JS 0x001091b0
MOV RDI,RAX
CALL 0x00104370
MOV RDX,qword ptr [R15 + 0x8]
MOV RDI,R15
MOV qword ptr [0x0012cb40],RAX
MOV RSI,RAX
MOV qword ptr [0x0012cb38],RAX
CALL qword ptr [RDX + 0x1f8]
MOV qword ptr [RSP + 0x18],RAX
TEST RAX,RAX
JS 0x001091b0
JZ 0x001096d0
MOV RDX,R13
LEA RSI,[0x1083b0]
MOV RDI,R15
CALL 0x00104890
MOV EAX,dword ptr [0x0012c9f4]
TEST EAX,EAX
JZ 0x00109680
MOV RBP,qword ptr [0x0012caa8]
TEST RBP,RBP
JZ 0x001093bc
NOP dword ptr [RAX]
MOV RDI,qword ptr [RBP + 0x8]
MOV EDX,0x40
XOR ESI,ESI
MOV EBX,0x128
CALL 0x00107360
TEST RAX,RAX
JZ 0x00109318
MOV EBX,dword ptr [RAX + 0x28]
OR BH,0x1
MOV RSI,qword ptr [RBP + 0x8]
MOV RDI,R13
CALL 0x001043e0
TEST RAX,RAX
JNZ 0x00109ac0
OR EBX,0x100000
MOV RSI,qword ptr [RBP + 0x8]
MOV RDI,R13
MOV EDX,EBX
CALL 0x00104100
MOV qword ptr [RBP + 0x28],RAX
TEST RAX,RAX
JZ 0x00109af8
MOV RDX,qword ptr [RBP + 0x18]
MOV RSI,RAX
MOV RDI,R13
CALL 0x001045f0
TEST EAX,EAX
JZ 0x00109aa8
MOV RDI,qword ptr [RBP + 0x8]
XOR ESI,ESI
MOV EDX,0xc
CALL 0x00107360
TEST RAX,RAX
JZ 0x0010938e
MOV RDX,qword ptr [RAX + 0x18]
MOV RAX,qword ptr [RBP + 0x28]
OR byte ptr [RAX + 0x24],0x1
MOV qword ptr [RAX + 0x30],RDX
MOV qword ptr [RAX + 0x28],RDX
MOV RDI,qword ptr [RBP + 0x8]
XOR ESI,ESI
MOV EDX,0x30
CALL 0x00107360
TEST RAX,RAX
JZ 0x001093af
MOV RDX,qword ptr [RBP + 0x28]
MOV RAX,qword ptr [RAX + 0x20]
MOV qword ptr [RDX + 0x30],RAX
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JNZ 0x001092f8
MOV RBP,qword ptr [0x0012caa0]
TEST RBP,RBP
JZ 0x0010940d
NOP dword ptr [RAX + RAX*0x1]
MOV RSI,qword ptr [RBP + 0x8]
MOV RDI,R15
CALL 0x001043e0
MOV qword ptr [RBP + 0x28],RAX
TEST RAX,RAX
JZ 0x0010a42a
MOV R12,qword ptr [RAX + 0x68]
MOV RDX,qword ptr [RBP + 0x18]
MOV RDI,R13
MOV RSI,R12
CALL 0x001045f0
TEST EAX,EAX
JZ 0x0010a48e
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JNZ 0x001093d0
MOV EAX,dword ptr [0x0012cb20]
TEST EAX,EAX
JNZ 0x0010a50b
MOV RBX,qword ptr [0x0012ca98]
LEA RAX,[RSP + 0xc0]
TEST RBX,RBX
JZ 0x001098d5
MOV qword ptr [RSP + 0x8],R13
MOV R14,RAX
JMP 0x001094b4
MOV RDI,qword ptr [RBX + 0x10]
LEA RSI,[0x122f63]
CALL 0x00104760
MOV R12,RAX
TEST RAX,RAX
JZ 0x00109a78
MOV RDX,R14
MOV RSI,R13
MOV RDI,R15
CALL 0x001041c0
TEST EAX,EAX
JZ 0x00109870
MOV RDI,qword ptr [RSP + 0xc0]
MOV RCX,R12
MOV RDX,RBP
MOV ESI,0x1
CALL 0x00104840
CMP RBP,RAX
JNZ 0x0010a9ae
MOV RDI,R12
CALL 0x001041f0
MOV RDI,qword ptr [RSP + 0xc0]
CALL 0x00104920
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JZ 0x001098d0
MOV RSI,qword ptr [RBX + 0x8]
MOV RDI,R15
CALL 0x001043e0
MOV R13,RAX
TEST RAX,RAX
JZ 0x001098a0
MOV EDX,0x5
LEA RSI,[0x121700]
TEST byte ptr [RAX + 0x21],0x1
JZ 0x001094f7
MOV RBP,qword ptr [RAX + 0x38]
TEST RBP,RBP
JNZ 0x00109440
MOV EDX,0x5
LEA RSI,[0x121728]
XOR EDI,EDI
CALL 0x00104240
MOV RDX,R13
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001094a8
MOV RDI,R15
CALL 0x0011bfe0
MOV EDX,0x5
LEA RSI,[0x1212a8]
MOV RBX,RAX
XOR EDI,EDI
CALL 0x00104240
MOV RSI,RBX
XOR EBX,EBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x001091c2
MOV RDI,R15
CALL 0x0011bfe0
MOV EDX,0x5
LEA RSI,[0x121258]
MOV RBX,RAX
JMP 0x0010952f
MOV EDX,0x5
LEA RSI,[0x121930]
XOR EDI,EDI
CALL 0x00104240
MOV RCX,RAX
NOP
XOR EDX,EDX
MOV RSI,R13
XOR EDI,EDI
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV RCX,qword ptr [R13]
MOV RDX,qword ptr [R13 + 0x8]
MOV RDI,R15
MOV R12,qword ptr [RAX]
MOV R14,qword ptr [RDX]
MOV qword ptr [RSP + 0x8],RCX
CALL 0x0011bfe0
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1212e0]
MOV RBX,RAX
CALL 0x00104240
MOV RCX,qword ptr [RSP + 0x8]
MOV R8,R14
MOV RDX,R12
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001042a0
JMP 0x00109064
MOV RDI,R15
CALL 0x0011bfe0
MOV EDX,0x5
LEA RSI,[0x121228]
MOV RBX,RAX
JMP 0x0010952f
MOV RDI,R15
CALL 0x00104650
MOV RDI,R15
MOV RBP,RAX
CALL 0x00104550
MOV RSI,RBP
MOV EDI,EAX
CALL 0x00104590
MOV EDX,0x5
LEA RSI,[0x121378]
MOV RBP,RAX
JMP 0x00109191
MOV RDI,R15
CALL 0x0011bfe0
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x121308]
MOV RBP,RAX
CALL 0x00104240
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x0010912d
MOV RAX,qword ptr [R13 + 0x8]
MOV RSI,R13
MOV RDI,R15
CALL qword ptr [RAX + 0x160]
TEST EAX,EAX
JNZ 0x001092e5
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x11e172]
MOV dword ptr [0x0012cb24],0x1
CALL 0x00104240
XOR EDX,EDX
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001092e5
MOV RDI,qword ptr [0x0012cb40]
CALL 0x00104920
MOV qword ptr [0x0012cb40],0x0
MOV qword ptr [0x0012cb38],0x0
JMP 0x001092c5
MOV RSI,qword ptr [RAX]
LEA RDX,[0x11e166]
MOV ECX,0x4
MOV RDI,RDX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010923a
MOV RCX,qword ptr [R15 + 0x8]
MOV RAX,qword ptr [R13 + 0xf8]
CMP dword ptr [RCX + 0x8],0x2
JZ 0x0010a4ce
MOV RDX,qword ptr [0x0012b4f8]
CMP RDX,-0x1
JZ 0x0010a4b9
MOV qword ptr [RAX + 0x110],RDX
MOV RCX,qword ptr [0x0012b4f0]
CMP RCX,-0x1
JZ 0x00109762
MOV qword ptr [RAX + 0x168],RCX
MOV RCX,qword ptr [0x0012b4e8]
CMP RCX,-0x1
JZ 0x00109776
MOV qword ptr [RAX + 0x168],RCX
MOV RCX,qword ptr [0x0012b4e0]
CMP RCX,-0x1
JZ 0x0010978a
MOV qword ptr [RAX + 0x100],RCX
MOV RCX,qword ptr [0x0012b4d8]
CMP RCX,-0x1
JZ 0x0010a4a4
MOV qword ptr [RAX + 0x108],RCX
MOV RSI,qword ptr [0x0012b4d0]
CMP RSI,-0x1
JZ 0x001097b6
MOV qword ptr [RAX + 0x158],RSI
MOV RSI,qword ptr [0x0012b4c8]
CMP RSI,-0x1
JZ 0x001097ca
MOV qword ptr [RAX + 0x158],RSI
MOVZX ESI,word ptr [0x0012b4c4]
CMP SI,-0x1
JZ 0x001097de
MOV word ptr [RAX + 0x148],SI
MOVZX ESI,word ptr [0x0012b4c2]
CMP SI,-0x1
JZ 0x001097f2
MOV word ptr [RAX + 0x120],SI
MOVZX ESI,word ptr [0x0012b4c0]
CMP SI,-0x1
JZ 0x00109806
MOV word ptr [RAX + 0x122],SI
CMP RDX,RCX
JBE 0x0010923a
LEA RBX,[RSP + 0xa0]
LEA RSI,[0x11e16b]
XOR EAX,EAX
MOV RDI,RBX
LEA RBP,[RSP + 0xc0]
CALL 0x00104820
MOV RDX,qword ptr [0x0012b4d8]
MOV RDI,RBP
XOR EAX,EAX
LEA RSI,[0x11e16b]
CALL 0x00104820
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1213a8]
CALL 0x00104240
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x0010923a
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1217b0]
CALL 0x00104240
MOV RDX,R13
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x00109493
MOV RBP,qword ptr [RBX + 0x8]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1216d0]
CALL 0x00104240
XOR EDX,EDX
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
MOV R8,RBP
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001094a8
MOV R13,qword ptr [RSP + 0x8]
MOV RAX,qword ptr [0x0012ca90]
MOV qword ptr [RSP + 0x70],RAX
TEST RAX,RAX
JZ 0x00109939
LEA RSI,[0x11e1c0]
MOV RDI,R13
CALL 0x001043e0
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0010a796
MOV RBX,qword ptr [R13]
MOV EDX,0x5
LEA RSI,[0x1217d8]
XOR EDI,EDI
CALL 0x00104240
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x0011b660
MOV qword ptr [0x0012ca90],0x0
MOV qword ptr [RSP + 0x70],0x0
MOV R12D,dword ptr [R13 + 0xa0]
TEST R12D,R12D
JZ 0x00109b10
MOV EAX,dword ptr [0x0012cad0]
OR EAX,dword ptr [0x0012cac8]
JZ 0x00109b10
MOV EBP,R12D
LEA RBX,[RBP*0x8]
MOV RDI,RBX
CALL 0x00104370
LEA RDX,[RSP + 0xc0]
LEA RSI,[0x1071c0]
MOV RDI,R13
MOV R14,RAX
MOV qword ptr [RSP + 0x80],RAX
MOV qword ptr [RSP + 0xc0],RAX
CALL 0x00104890
MOV RSI,RBP
MOV EDX,0x8
MOV RDI,R14
LEA RCX,[0x1071d0]
CALL 0x00104130
MOV RDI,RBX
CALL 0x00104370
MOV RDX,RBX
XOR ESI,ESI
MOV RDI,RAX
MOV RBP,RAX
MOV qword ptr [RSP + 0x88],RAX
CALL 0x00104340
MOV EAX,dword ptr [0x0012cad0]
XOR EDI,EDI
MOV qword ptr [RSP + 0x78],RDI
TEST EAX,EAX
JZ 0x0010a5cb
CMP R12D,0x1
JZ 0x0010a5cb
LEA EAX,[R12 + -0x2]
MOV RBX,R14
MOV dword ptr [RSP + 0x8],R12D
MOV R12,RDI
LEA RCX,[R14 + RAX*0x8 + 0x8]
MOV qword ptr [RSP + 0x10],R15
MOV R14,RCX
JMP 0x00109a21
ADD RBX,0x8
ADD RBP,0x8
CMP R14,RBX
JZ 0x0010a5bc
MOV RSI,qword ptr [RBX]
MOV EAX,dword ptr [RSI + 0x20]
AND EAX,0x102
CMP EAX,0x102
JNZ 0x00109a10
MOV RDI,qword ptr [RBX + 0x8]
MOV RAX,qword ptr [RSI + 0x38]
MOV RDX,qword ptr [RSI + 0x30]
MOV RDI,qword ptr [RDI + 0x30]
ADD RDX,RAX
CMP RDX,RDI
JNC 0x00109a10
SUB RDI,RDX
MOV R15,RDI
LEA RDX,[RAX + RDI*0x1]
MOV RDI,R13
CALL 0x001045f0
TEST EAX,EAX
JZ 0x0010ac48
CMP R12,R15
MOV qword ptr [RBP],R15
CMOVC R12,R15
JMP 0x00109a10
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x121750]
CALL 0x00104240
MOV RDI,qword ptr [RBX + 0x10]
XOR EDX,EDX
XOR ESI,ESI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001094a8
MOV RDX,qword ptr [RBP + 0x28]
XOR ECX,ECX
MOV RSI,R13
XOR EDI,EDI
MOV EBX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV RBX,qword ptr [RBP + 0x8]
MOV EDX,0x5
LEA RSI,[0x11e18f]
XOR EDI,EDI
CALL 0x00104240
MOV R8,RBX
XOR EDX,EDX
MOV RSI,R13
MOV RCX,RAX
XOR EDI,EDI
XOR EAX,EAX
XOR EBX,EBX
CALL 0x0011c0d0
JMP 0x001091c2
MOV RBX,qword ptr [RBP + 0x8]
MOV EDX,0x5
LEA RSI,[0x11e1a6]
JMP 0x00109ad0
MOV qword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x88],0x0
MOV qword ptr [RSP + 0x80],0x0
MOV qword ptr [RSP + 0x68],0x0
MOV EBP,dword ptr [0x0012ca88]
TEST EBP,EBP
JNZ 0x0010a64d
MOV EAX,dword ptr [0x0012cb0c]
LEA EDX,[RAX + -0x2]
CMP EDX,0x5
JA 0x0010aa82
CMP EAX,0x7
JZ 0x00109b89
XOR EDI,EDI
CALL 0x00104380
MOV RDX,qword ptr [0x0012cb40]
LEA RSI,[0x108e30]
MOV RDI,R15
CALL 0x00104890
CALL 0x00104350
TEST EAX,EAX
JNZ 0x0010a215
MOVSXD RAX,dword ptr [0x0012ca18]
MOV RBX,qword ptr [RSP + 0x18]
LEA RDI,[RBX + RAX*0x1 + 0x1]
SHL RDI,0x3
CALL 0x00104370
MOV RDX,qword ptr [0x0012cb40]
MOV qword ptr [RSP + 0x40],RAX
MOV qword ptr [0x0012cb38],RAX
MOV EAX,dword ptr [R15 + 0x44]
SHR EAX,0x5
AND EAX,0x42
MOV dword ptr [RSP + 0x60],EAX
TEST RBX,RBX
JZ 0x00109eeb
LEA RAX,[RDX + RBX*0x8]
MOV qword ptr [RSP + 0x8],RDX
MOV qword ptr [RSP + 0x38],RAX
LEA RAX,[RSP + 0xc0]
MOV qword ptr [RSP + 0x18],0x0
MOV qword ptr [RSP + 0x48],RAX
MOV qword ptr [RSP + 0x30],R15
MOV qword ptr [RSP + 0x28],R13
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RSP + 0x8]
MOV R15,qword ptr [0x0012ca20]
MOV RBP,qword ptr [RAX]
MOV EAX,dword ptr [RBP + 0x18]
MOV RBX,qword ptr [RBP + 0x8]
MOV dword ptr [RSP + 0x10],EAX
MOV RAX,qword ptr [RBP + 0x20]
MOV qword ptr [RSP + 0x20],RAX
TEST R15,R15
JZ 0x00109cb0
MOV R12D,dword ptr [0x0012ca18]
TEST R12D,R12D
JLE 0x00109cb0
MOV R13,qword ptr [R15 + 0x28]
TEST R13,R13
JZ 0x00109cb0
XOR R14D,R14D
JMP 0x00109c65
ADD R14D,0x1
MOV R15,qword ptr [R15]
CMP R14D,R12D
JZ 0x00109cb0
MOV R13,qword ptr [R15 + 0x28]
TEST R13,R13
JZ 0x00109cb0
MOV RSI,RBX
MOV RDI,R13
CALL 0x00104460
TEST EAX,EAX
JNZ 0x00109c50
MOV RDI,R13
CALL 0x00104920
LEA RAX,[0x123227]
MOV RCX,qword ptr [RSP + 0x40]
MOV RDI,R15
MOV qword ptr [R15 + 0x28],RAX
MOV RSI,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [RSP + 0x18]
LEA R13,[RAX + 0x1]
LEA R12,[RCX + RAX*0x8]
CALL 0x00108200
MOV qword ptr [RSP + 0x18],R13
MOV qword ptr [R12],RAX
NOP
MOV RDI,qword ptr [0x0012ca30]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x00109cce
CMP qword ptr [0x0012cb48],0x0
MOV R12,RBX
JZ 0x00109d0d
MOV RSI,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [0x0012ca30]
MOV qword ptr [RSP + 0xc0],RBX
MOV qword ptr [RSP + 0xc8],0x0
CALL 0x00104810
TEST RAX,RAX
JZ 0x0010a0b0
MOV R12,qword ptr [RAX + 0x8]
CMP RBX,R12
JZ 0x0010a0b3
MOV qword ptr [RBP + 0x8],R12
MOV RAX,qword ptr [RSP + 0x30]
MOV EDX,dword ptr [0x0012ca7c]
MOV RAX,qword ptr [RAX + 0x8]
MOVZX EAX,byte ptr [RAX + 0x1c]
CMP byte ptr [R12],AL
JZ 0x00109f68
TEST EDX,EDX
JNZ 0x0010a080
MOV RDI,qword ptr [0x0012ca08]
MOV RBX,R12
TEST RDI,RDI
JZ 0x00109da6
CALL 0x00104260
MOV RDI,R12
MOV RBX,RAX
CALL 0x00104260
LEA RDI,[RBX + RAX*0x1 + 0x2]
CALL 0x00104370
MOV RDX,RAX
MOV RBX,RAX
MOV RCX,qword ptr [0x0012ca08]
TEST RCX,RCX
JZ 0x00109d97
MOV RDI,RDX
MOV RSI,RCX
MOV qword ptr [RSP + 0x50],RDX
MOV qword ptr [RSP + 0x58],RCX
CALL 0x001040e0
MOV RCX,qword ptr [RSP + 0x58]
MOV RDI,RCX
CALL 0x00104260
MOV RDX,qword ptr [RSP + 0x50]
ADD RDX,RAX
MOV RSI,R12
MOV RDI,RDX
CALL 0x001040e0
MOV qword ptr [RBP + 0x8],RBX
CMP dword ptr [0x0012cb0c],0x7
JZ 0x00109e38
MOV EAX,dword ptr [RSP + 0x10]
TEST AL,0x20
JNZ 0x0010a100
TEST AH,0x1
JZ 0x00109fe0
MOV RAX,qword ptr [RBP + 0x20]
MOV RAX,qword ptr [RAX + 0x100]
MOV RAX,qword ptr [RAX]
TEST byte ptr [RAX + 0x18],0x20
JZ 0x00109fe0
MOV RSI,qword ptr [0x0012ca68]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x00109e20
MOV EDX,0x5
LEA RSI,[0x1219f0]
XOR EDI,EDI
CALL 0x00104240
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
MOV dword ptr [0x0012cb24],0x1
NOP dword ptr [RAX]
MOV RSI,qword ptr [0x0012ca60]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x00109e61
NOP dword ptr [RAX + RAX*0x1]
MOV R10D,dword ptr [0x0012ca10]
TEST R10D,R10D
JZ 0x00109e4e
TEST dword ptr [RSP + 0x10],0x4000
JNZ 0x00109e61
MOV RSI,qword ptr [0x0012ca58]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x00109ecb
MOV RDI,qword ptr [RBP + 0x20]
CALL 0x001082f0
TEST EAX,EAX
JNZ 0x00109ecb
TEST byte ptr [RSP + 0x10],0x2
JZ 0x00109e90
MOV R9D,dword ptr [0x0012ca14]
TEST R9D,R9D
JZ 0x0010a5a0
MOV EAX,dword ptr [RBP + 0x18]
AND EAX,0xfffffffd
OR AL,0x80
MOV dword ptr [RBP + 0x18],EAX
LEA RCX,[0x12c678]
CMP qword ptr [RSP + 0x20],RCX
JZ 0x00109eb4
TEST byte ptr [RSP + 0x10],0x82
JNZ 0x0010a467
TEST byte ptr [RSP + 0x10],0x1
JNZ 0x0010a43f
MOV RAX,qword ptr [RSP + 0x18]
MOV RCX,qword ptr [RSP + 0x40]
MOV qword ptr [RCX + RAX*0x8],RBP
ADD RAX,0x1
MOV qword ptr [RSP + 0x18],RAX
ADD qword ptr [RSP + 0x8],0x8
MOV RAX,qword ptr [RSP + 0x8]
CMP qword ptr [RSP + 0x38],RAX
JNZ 0x00109c00
MOV R15,qword ptr [RSP + 0x30]
MOV R13,qword ptr [RSP + 0x28]
MOV RBP,qword ptr [0x0012ca20]
TEST RBP,RBP
JZ 0x0010a19d
MOV EDI,dword ptr [0x0012ca18]
TEST EDI,EDI
JLE 0x0010a19d
XOR R12D,R12D
MOV RDX,qword ptr [RSP + 0x18]
JMP 0x00109f39
CMP byte ptr [RBX],0x0
JNZ 0x0010b744
MOVSXD RAX,dword ptr [0x0012ca18]
ADD R12,0x1
MOV RBP,qword ptr [RBP]
CMP R12,RAX
JGE 0x0010a198
MOV RBX,qword ptr [RBP + 0x28]
TEST RBX,RBX
JNZ 0x00109f18
MOV RAX,qword ptr [RSP + 0x40]
MOV RSI,R13
MOV RDI,RBP
LEA RBX,[RDX + 0x1]
LEA R14,[RAX + RDX*0x8]
CALL 0x00108200
MOV RDX,RBX
MOV qword ptr [R14],RAX
JMP 0x00109f21
TEST EDX,EDX
JZ 0x0010a150
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [0x0012ca08]
MOV RAX,qword ptr [RAX + 0x8]
MOVZX EAX,byte ptr [RAX + 0x1c]
TEST AL,AL
JNZ 0x00109f95
ADD R12,0x1
MOV qword ptr [RBP + 0x8],R12
JMP 0x00109d39
TEST RDI,RDI
JZ 0x0010a188
ADD R12,0x1
MOV qword ptr [RBP + 0x8],R12
CALL 0x00104260
MOV RDI,R12
MOV RBX,RAX
CALL 0x00104260
LEA RDI,[RBX + RAX*0x1 + 0x2]
CALL 0x00104370
MOV RBX,RAX
LEA RDX,[RAX + 0x1]
MOV RAX,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [RAX + 0x8]
MOVZX EAX,byte ptr [RAX + 0x1c]
MOV byte ptr [RBX],AL
JMP 0x00109d61
MOV R11D,dword ptr [RSP + 0x60]
TEST R11D,R11D
JNZ 0x00109ffb
TEST byte ptr [RSP + 0x10],0x82
JNZ 0x0010a060
MOV RAX,qword ptr [RBP + 0x20]
TEST byte ptr [RAX + 0x21],0x10
JNZ 0x0010a060
MOV RDI,RBP
CALL 0x00104480
CMP EAX,0x49
JZ 0x0010a060
TEST byte ptr [RSP + 0x10],0x82
JNZ 0x0010a418
LEA RCX,[0x12c678]
CMP qword ptr [RSP + 0x20],RCX
JZ 0x0010a418
MOV RAX,qword ptr [RBP + 0x20]
TEST byte ptr [RAX + 0x21],0x10
JNZ 0x0010a418
TEST byte ptr [RSP + 0x10],0x4
JZ 0x0010aab4
MOV EAX,dword ptr [0x0012cb0c]
SUB EAX,0x2
CMP EAX,0x1
JBE 0x00109e38
CMP dword ptr [0x0012ca88],0x0
JNZ 0x00109e38
NOP dword ptr [RAX]
MOV RSI,qword ptr [0x0012ca68]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JNZ 0x00109e38
JMP 0x00109e20
MOV RCX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [0x0012ca08]
MOV RDX,qword ptr [RCX + 0x8]
CMP byte ptr [RDX + 0x1c],0x0
JZ 0x00109d39
TEST AL,AL
JNZ 0x00109d39
JMP 0x00109fa6
MOV R12,RBX
TEST dword ptr [RSP + 0x10],0x100
JZ 0x00109d09
MOV R12,qword ptr [0x0012cb48]
TEST R12,R12
JNZ 0x0010a0e6
JMP 0x0010a66d
MOV R12,qword ptr [R12 + 0x18]
TEST R12,R12
JZ 0x0010a66d
MOV RDI,qword ptr [R12]
MOV RSI,RBX
CALL 0x00104460
TEST EAX,EAX
JNZ 0x0010a0d8
MOV R12,qword ptr [R12 + 0x8]
JMP 0x00109d09
MOV RSI,qword ptr [0x0012ca68]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x00109e61
MOV EDX,0x5
LEA RSI,[0x1219f0]
XOR EDI,EDI
CALL 0x00104240
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
MOV dword ptr [0x0012cb24],0x1
JMP 0x00109e61
MOV EBX,dword ptr [0x0012ca78]
TEST EBX,EBX
JZ 0x00109d32
TEST byte ptr [RSP + 0x10],0x82
JNZ 0x0010a177
LEA RCX,[0x12c678]
CMP qword ptr [RSP + 0x20],RCX
JNZ 0x0010a783
MOV RDI,qword ptr [0x0012ca08]
JMP 0x00109f88
MOV byte ptr [R12],AL
MOV RBX,R12
MOV qword ptr [RBP + 0x8],R12
JMP 0x00109da6
MOV qword ptr [RSP + 0x18],RDX
MOV RAX,qword ptr [RSP + 0x40]
MOV RCX,qword ptr [RSP + 0x18]
MOV ESI,dword ptr [0x0012ca88]
MOV qword ptr [RAX + RCX*0x8],0x0
MOV EAX,dword ptr [RSP + 0x18]
MOV qword ptr [RSP + 0x18],RAX
TEST ESI,ESI
JZ 0x0010a2f0
CMP qword ptr [RSP + 0x68],0x0
JZ 0x0010a2f0
MOV RDX,qword ptr [R13 + 0x8]
MOV EAX,dword ptr [RDX + 0x8]
CMP EAX,0x2
JZ 0x0010a886
CMP EAX,0x5
JZ 0x0010a886
MOV RBX,qword ptr [RDX]
LEA RSI,[0x121870]
MOV EDX,0x5
XOR EDI,EDI
CALL 0x00104240
XOR EDX,EDX
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
MOV R8,RBX
XOR EAX,EAX
CALL 0x0011c0d0
MOV dword ptr [0x0012cb24],0x1
XOR EBX,EBX
JMP 0x001091c2
MOV RDI,qword ptr [0x0012ca58]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
MOV RDI,qword ptr [0x0012ca50]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
MOV RDI,qword ptr [0x0012ca48]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
MOV RDI,qword ptr [0x0012ca40]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
MOV RDI,qword ptr [0x0012ca38]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
MOV RDI,qword ptr [0x0012ca30]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010aaa9
CMP qword ptr [0x0012ca08],0x0
JNZ 0x0010aaa9
CMP qword ptr [0x0012cb48],0x0
JNZ 0x0010aaa9
MOV EAX,dword ptr [0x0012cafc]
OR EAX,dword ptr [0x0012caf8]
OR EAX,dword ptr [0x0012ca88]
OR EAX,dword ptr [0x0012ca7c]
OR EAX,dword ptr [0x0012ca78]
OR EAX,dword ptr [0x0012ca14]
OR EAX,dword ptr [0x0012ca18]
JNZ 0x0010aaa9
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,qword ptr [0x0012cb38]
MOV RDI,R13
CALL 0x00104450
MOV RDX,R13
LEA RSI,[0x108b90]
MOV RDI,R15
CALL 0x00104890
MOV RDX,R13
LEA RSI,[0x108850]
MOV RDI,R15
CALL 0x00104890
MOV RBP,qword ptr [0x0012caa8]
TEST RBP,RBP
JZ 0x0010a35f
NOP dword ptr [RAX + RAX*0x1]
MOV RDX,qword ptr [RBP + 0x20]
MOV RSI,qword ptr [RBP + 0x28]
XOR ECX,ECX
MOV RDI,R13
MOV R8,qword ptr [RBP + 0x18]
CALL 0x00104310
TEST EAX,EAX
JZ 0x00109aa8
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JNZ 0x0010a338
MOV R12,qword ptr [0x0012caa0]
TEST R12,R12
JZ 0x0010a3a1
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [R12 + 0x28]
MOV RDX,qword ptr [R12 + 0x20]
XOR ECX,ECX
MOV RDI,R13
MOV R8,qword ptr [R12 + 0x18]
MOV RBP,qword ptr [RAX + 0x68]
MOV RSI,RBP
CALL 0x00104310
TEST EAX,EAX
JZ 0x0010a870
MOV R12,qword ptr [R12]
TEST R12,R12
JNZ 0x0010a370
MOV ECX,dword ptr [0x0012cb20]
TEST ECX,ECX
JNZ 0x0010a9f8
MOV RDX,qword ptr [0x0012ca90]
TEST RDX,RDX
JZ 0x0010a3d2
MOV RSI,qword ptr [RSP + 0x70]
MOV RDI,R13
CALL 0x00104600
MOV EBX,EAX
TEST EAX,EAX
JZ 0x0010abeb
MOV EAX,dword ptr [0x0012cad0]
OR EAX,dword ptr [0x0012cac8]
JNZ 0x0010a675
MOV RAX,qword ptr [R13 + 0x8]
MOV RSI,R13
MOV RDI,R15
CALL qword ptr [RAX + 0x138]
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00109569
MOV RSI,qword ptr [0x0012cab8]
TEST RSI,RSI
JNZ 0x0010ab7f
MOV EBX,0x1
JMP 0x001091c2
CMP dword ptr [0x0012cb0c],0x3
JNZ 0x0010a060
JMP 0x00109e38
MOV RBX,qword ptr [RBP + 0x8]
MOV EDX,0x5
LEA RSI,[0x1213e8]
JMP 0x0010952f
MOV RSI,qword ptr [0x0012ca48]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x00109eb4
MOV EAX,dword ptr [RBP + 0x18]
AND EAX,0xfffffffe
OR EAX,0x2
MOV dword ptr [RBP + 0x18],EAX
JMP 0x00109eb4
MOV RSI,qword ptr [0x0012ca50]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x0010a800
MOV EAX,dword ptr [RBP + 0x18]
AND AL,0x7d
OR EAX,0x1
MOV dword ptr [RBP + 0x18],EAX
JMP 0x00109ea9
XOR ECX,ECX
MOV RDX,R12
MOV RSI,R13
XOR EDI,EDI
MOV EBX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV qword ptr [0x0012b4d8],0x1000
MOV ECX,0x1000
JMP 0x001097a2
MOV qword ptr [0x0012b4f8],0x200
MOV EDX,0x200
JMP 0x0010974e
MOV RSI,qword ptr [RCX]
MOV RDI,RDX
MOV ECX,0x4
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00109736
MOV RCX,qword ptr [R15 + 0xf8]
LEA RDI,[RAX + 0xc8]
LEA RSI,[RCX + 0xc8]
MOV ECX,0x37
MOVSQ.REP RDI,RSI
JMP 0x00109736
LEA RSI,[0x11e0bb]
MOV RDI,R15
CALL 0x001043e0
MOV R14,RAX
TEST RAX,RAX
JZ 0x0010941b
MOV EAX,dword ptr [0x0012cb20]
TEST EAX,EAX
JZ 0x0010941b
MOV RAX,qword ptr [R15 + 0x8]
CMP dword ptr [RAX + 0x8],0x5
JNZ 0x0010941b
LEA RSI,[R14 + 0xe0]
MOV RDI,R14
CALL 0x00107fb0
TEST EAX,EAX
JZ 0x0010941b
MOV RAX,qword ptr [R14 + 0x38]
MOV qword ptr [RSP + 0x38],RAX
TEST RAX,RAX
JNZ 0x0010ad68
MOV EDX,0x5
LEA RSI,[0x121410]
XOR EDI,EDI
CALL 0x00104240
MOV RDX,R14
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
MOV dword ptr [0x0012cb20],0x0
JMP 0x0010941b
MOV RSI,qword ptr [0x0012ca38]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JNZ 0x00109e85
JMP 0x00109e90
MOV qword ptr [RSP + 0x78],R12
MOV R15,qword ptr [RSP + 0x10]
MOV R12D,dword ptr [RSP + 0x8]
MOV R14D,dword ptr [0x0012cac8]
TEST R14D,R14D
JZ 0x00109b31
MOV RAX,qword ptr [RSP + 0x80]
LEA EBX,[R12 + -0x1]
LEA RBP,[RAX + RBX*0x8]
MOV RAX,qword ptr [0x0012cac0]
MOV RSI,qword ptr [RBP]
MOV RDX,qword ptr [RSI + 0x30]
MOV R12,qword ptr [RSI + 0x38]
ADD R12,RDX
CMP R12,RAX
JNC 0x00109b31
SUB RAX,RDX
MOV RDI,R13
MOV RDX,RAX
CALL 0x001045f0
TEST EAX,EAX
JZ 0x0010acab
MOV RAX,qword ptr [0x0012cac0]
MOV RCX,qword ptr [RSP + 0x88]
SUB RAX,R12
MOV qword ptr [RCX + RBX*0x8],RAX
MOV RCX,qword ptr [RSP + 0x78]
CMP RCX,RAX
CMOVNC RAX,RCX
MOV qword ptr [RSP + 0x78],RAX
JMP 0x00109b31
MOV RDX,qword ptr [RSP + 0x18]
MOV RSI,qword ptr [0x0012cb40]
XOR ECX,ECX
MOV RDI,R15
CALL 0x0010c920
MOV qword ptr [RSP + 0x68],RAX
JMP 0x00109b48
MOV R12,RBX
JMP 0x00109d09
MOV RAX,qword ptr [RSP + 0x78]
MOV EBX,0x2000
CMP RAX,0x2000
CMOVBE RBX,RAX
MOV RDI,RBX
CALL 0x00104370
MOVZX EDX,byte ptr [0x0012cacc]
MOV qword ptr [RSP + 0x8],RAX
MOV RAX,0x101010101010101
IMUL RAX,RDX
CMP EBX,0x8
JNC 0x0010aa5b
TEST BL,0x4
JNZ 0x0010adcd
TEST EBX,EBX
JZ 0x0010a6d1
MOV RCX,qword ptr [RSP + 0x8]
MOV byte ptr [RCX],AL
TEST BL,0x2
JNZ 0x0010ae0e
MOV EAX,dword ptr [R13 + 0xa0]
TEST EAX,EAX
JZ 0x0010a3e4
MOV R12,qword ptr [RSP + 0x88]
SUB EAX,0x1
MOV qword ptr [RSP + 0x18],R15
MOV RBP,qword ptr [RSP + 0x80]
LEA RAX,[R12 + RAX*0x8 + 0x8]
MOV qword ptr [RSP + 0x10],RAX
JMP 0x0010a71b
ADD R12,0x8
ADD RBP,0x8
CMP qword ptr [RSP + 0x10],R12
JZ 0x0010ab17
MOV RBX,qword ptr [R12]
TEST RBX,RBX
JZ 0x0010a708
MOV RSI,qword ptr [RBP]
MOV R15,qword ptr [RSI + 0x38]
SUB R15,RBX
JMP 0x0010a744
ADD R15,R14
SUB RBX,R14
JZ 0x0010a708
MOV RSI,qword ptr [RBP]
CMP RBX,0x2000
MOV R14D,0x2000
MOV RCX,R15
MOV RDI,R13
CMOVBE R14,RBX
MOV RDX,qword ptr [RSP + 0x8]
MOV R8,R14
CALL 0x00104310
TEST EAX,EAX
JNZ 0x0010a738
MOV RDX,qword ptr [RBP]
XOR ECX,ECX
MOV RSI,R13
XOR EDI,EDI
MOV EBX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV RAX,qword ptr [RBP + 0x20]
TEST byte ptr [RAX + 0x21],0x10
JNZ 0x0010a177
JMP 0x00109d32
MOV RSI,qword ptr [0x0012ca90]
MOV RDI,R13
CALL 0x00104170
MOV qword ptr [RSP + 0x70],RAX
TEST RAX,RAX
JZ 0x0010ace0
MOV RAX,qword ptr [R13 + 0x8]
CMP dword ptr [RAX + 0x8],0x2
JNZ 0x00109939
MOV RAX,qword ptr [R13 + 0x90]
TEST RAX,RAX
JNZ 0x0010a7ed
JMP 0x0010ad5e
CMP RDX,qword ptr [RBX + 0x28]
CMOVA RBX,RAX
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0010ab3d
MOV RDX,qword ptr [RAX + 0x28]
TEST RDX,RDX
JZ 0x0010a7e0
TEST RBX,RBX
JNZ 0x0010a7d8
MOV RBX,RAX
JMP 0x0010a7e0
MOV RDI,qword ptr [0x0012ca40]
CALL 0x001044d0
TEST RAX,RAX
JNZ 0x0010ab21
MOV R8D,dword ptr [0x0012ca70]
TEST R8D,R8D
JZ 0x00109ea9
MOV RAX,qword ptr [RBP]
TEST RAX,RAX
JZ 0x00109ea9
MOV RDX,qword ptr [RAX + 0x8]
CMP dword ptr [RDX + 0x8],0x5
JNZ 0x00109ea9
CMP qword ptr [RAX + 0xf8],0x0
JZ 0x00109ea9
MOVZX EAX,byte ptr [RBP + 0x49]
AND EAX,0x3
SUB EAX,0x1
CMP EAX,0x1
JA 0x00109ea9
JMP 0x0010a47e
XOR ECX,ECX
MOV RDX,RBP
MOV RSI,R13
XOR EDI,EDI
MOV EBX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV RSI,qword ptr [RSP + 0x68]
LEA RCX,[RSP + 0xa0]
LEA RDX,[RSP + 0x90]
MOV RDI,R13
LEA R9,[RSP + 0xc0]
LEA R8,[RSP + 0x98]
CALL 0x0011aff0
TEST EAX,EAX
JZ 0x0010a215
MOV EDX,0x2108
LEA RSI,[0x11e214]
MOV RDI,R13
CALL 0x00104100
MOV EDX,0x2108
LEA RSI,[0x1228d5]
MOV RDI,R13
MOV RBP,RAX
CALL 0x00104100
MOV RBX,RAX
TEST RBP,RBP
JZ 0x0010ab06
TEST RAX,RAX
JZ 0x0010ab06
MOV RDX,qword ptr [RSP + 0xa0]
MOV RSI,RBP
MOV RDI,R13
CALL 0x001045f0
TEST EAX,EAX
JZ 0x0010ab06
MOV RDX,qword ptr [RSP + 0xc0]
MOV RSI,RBX
MOV RDI,R13
CALL 0x001045f0
TEST EAX,EAX
JZ 0x0010ab06
MOV dword ptr [RBP + 0x70],0x2
XOR ECX,ECX
MOV RSI,RBP
MOV RDI,R13
MOV dword ptr [RBX + 0x70],0x0
MOV R8,qword ptr [RSP + 0xa0]
MOV RDX,qword ptr [RSP + 0x90]
CALL 0x00104310
TEST EAX,EAX
JZ 0x0010a985
MOV R8,qword ptr [RSP + 0xc0]
XOR ECX,ECX
MOV RSI,RBX
MOV RDI,R13
MOV RDX,qword ptr [RSP + 0x98]
CALL 0x00104310
TEST EAX,EAX
JNZ 0x0010a2f0
MOV EDX,0x5
LEA RSI,[0x121828]
XOR EDI,EDI
CALL 0x00104240
XOR EDX,EDX
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x0010a215
CALL 0x001040a0
MOV EDI,dword ptr [RAX]
CALL 0x001048d0
MOV RBX,qword ptr [RBX + 0x10]
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x121778]
MOV RBP,RAX
CALL 0x00104240
MOV RSI,RBX
MOV RDX,RBP
XOR EBX,EBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
MOV RDI,qword ptr [RSP + 0xc0]
CALL 0x00104920
JMP 0x001091c2
LEA RSI,[0x11e0bb]
MOV RDI,R13
CALL 0x001043e0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x0010aa27
MOV EDX,dword ptr [0x0012cb20]
TEST EDX,EDX
JZ 0x0010aa27
MOV RAX,qword ptr [R13 + 0x8]
CMP dword ptr [RAX + 0x8],0x5
JZ 0x0010acf8
MOV EAX,dword ptr [0x0012c508]
TEST EAX,EAX
JZ 0x0010ac1e
MOV RDI,qword ptr [0x0012cb18]
CALL 0x00104920
MOV qword ptr [0x0012cb18],0x0
MOV dword ptr [0x0012cb20],0x0
JMP 0x0010a3af
MOV RCX,qword ptr [RSP + 0x8]
MOV EDX,EBX
LEA RDI,[RCX + 0x8]
MOV qword ptr [RCX],RAX
AND RDI,-0x8
MOV qword ptr [RCX + RDX*0x1 + -0x8],RAX
SUB RCX,RDI
ADD ECX,EBX
SHR ECX,0x3
STOSQ.REP RDI
JMP 0x0010a6d1
MOV EAX,dword ptr [0x0012ca70]
OR EAX,dword ptr [0x0012cb08]
JNZ 0x00109b5f
MOV RDI,qword ptr [0x0012ca68]
CALL 0x001044d0
TEST RAX,RAX
JZ 0x0010a226
MOV EAX,dword ptr [0x0012cb0c]
JMP 0x00109b5a
MOV RCX,qword ptr [RSP + 0x30]
MOV RDX,qword ptr [RCX + 0x8]
CMP dword ptr [RDX + 0x8],0x2
JZ 0x0010ac8b
CMP dword ptr [0x0012cb0c],0x3
JZ 0x00109e38
MOV EAX,dword ptr [0x0012cb08]
CMP EAX,0x2
JZ 0x00109e38
SUB EAX,0x1
JNZ 0x0010a060
MOV RDI,qword ptr [RSP + 0x30]
MOV RSI,RBP
CALL 0x001048e0
TEST EAX,EAX
JZ 0x0010a060
JMP 0x00109e38
MOV EDX,0x5
LEA RSI,[0x121850]
JMP 0x0010a991
MOV R15,qword ptr [RSP + 0x18]
JMP 0x0010a3e4
MOV RSI,qword ptr [0x0012ca40]
MOV RDI,RBX
CALL 0x00108290
TEST EAX,EAX
JZ 0x0010a47e
JMP 0x0010a815
TEST RBX,RBX
JZ 0x0010ad5e
MOV RAX,qword ptr [RBX + 0x38]
ADD RAX,qword ptr [RBX + 0x28]
OR RDX,-0x1
CMP RAX,-0x1000
JA 0x0010ab69
ADD RAX,0xfff
AND RAX,-0x1000
MOV RDX,RAX
MOV RAX,qword ptr [RSP + 0x70]
MOV qword ptr [RAX + 0x30],RDX
MOV qword ptr [RAX + 0x28],RDX
OR byte ptr [RAX + 0x24],0x1
JMP 0x00109939
MOV RDI,R13
CALL 0x00104580
TEST EAX,EAX
JNZ 0x0010a40e
MOV EDX,0x5
XOR EDI,EDI
MOV RBX,qword ptr [0x0012cab8]
LEA RSI,[0x121950]
CALL 0x00104240
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x0011b660
MOV RAX,qword ptr [R13 + 0x8]
MOV EDX,0x5
CMP dword ptr [RAX + 0x8],0x5
JZ 0x0010addf
LEA RSI,[0x1219d0]
XOR EDI,EDI
MOV EBX,0x1
CALL 0x00104240
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
JMP 0x001091c2
MOV RBP,qword ptr [0x0012ca90]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x121908]
CALL 0x00104240
XOR EDX,EDX
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
MOV R8,RBP
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1218d8]
CALL 0x00104240
MOV RDX,RBP
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x0010aa35
MOV EDX,0x5
LEA RSI,[0x11e1cf]
XOR EDI,EDI
MOV qword ptr [RSP + 0x78],R12
MOV R15,qword ptr [RSP + 0x10]
MOV R12D,dword ptr [RSP + 0x8]
CALL 0x00104240
MOV RDX,qword ptr [RBX]
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
MOV dword ptr [0x0012cb24],0x1
JMP 0x0010a5cb
MOV RAX,qword ptr [RAX + 0xe0]
TEST RAX,RAX
JZ 0x0010aac7
CMP qword ptr [RAX + 0x40],0x0
JNZ 0x0010a060
JMP 0x0010aac7
MOV EDX,0x5
LEA RSI,[0x11e1ec]
XOR EDI,EDI
CALL 0x00104240
MOV RDX,qword ptr [RBP]
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
MOV dword ptr [0x0012cb24],0x1
JMP 0x00109b31
MOV RBX,qword ptr [0x0012ca90]
MOV EDX,0x5
LEA RSI,[0x121800]
JMP 0x00109ad0
LEA RSI,[RBP + 0xe0]
MOV RDI,RBP
CALL 0x00107fb0
TEST EAX,EAX
JZ 0x0010aa27
MOV R8,qword ptr [0x0012cb10]
XOR ECX,ECX
MOV RSI,RBP
MOV RDI,R13
MOV RDX,qword ptr [0x0012cb18]
CALL 0x00104310
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x0010aa35
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1218a8]
CALL 0x00104240
MOV RDX,RBP
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x001091c2
MOV EDX,0x1000
JMP 0x0010ab69
LEA RDX,[0x12cb18]
MOV RSI,R14
MOV RDI,R15
CALL 0x00104420
TEST EAX,EAX
JNZ 0x0010ae1f
MOV EDX,0x5
LEA RSI,[0x121430]
XOR EDI,EDI
CALL 0x00104240
MOV RDX,R14
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
MOV RDI,qword ptr [0x0012cb18]
CALL 0x00104920
MOV qword ptr [0x0012cb18],0x0
MOV dword ptr [0x0012cb20],0x0
JMP 0x0010941b
MOV RCX,qword ptr [RSP + 0x8]
MOV EBX,EBX
MOV dword ptr [RCX],EAX
MOV dword ptr [RCX + RBX*0x1 + -0x4],EAX
JMP 0x0010a6d1
LEA RSI,[0x121990]
XOR EDI,EDI
CALL 0x00104240
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b660
MOV RAX,qword ptr [R13 + 0xf8]
MOV RDX,qword ptr [0x0012cab8]
MOV word ptr [RAX + 0x3a],DX
JMP 0x0010a40e
MOV RCX,qword ptr [RSP + 0x8]
MOV EBX,EBX
MOV word ptr [RCX + RBX*0x1 + -0x2],AX
JMP 0x0010a6d1
MOV RAX,qword ptr [0x0012cb18]
MOV RSI,R14
MOV RDI,R15
MOV qword ptr [RSP + 0x48],RAX
CALL 0x00104880
TEST RAX,RAX
JLE 0x0010ae6f
MOV RDI,RAX
CALL 0x00104370
MOV RCX,qword ptr [0x0012cb40]
MOV RDI,R15
MOV RSI,R14
MOV RDX,RAX
MOV RBX,RAX
CALL 0x001047f0
MOV RDI,RBX
MOV RBP,RAX
CALL 0x00104920
TEST RBP,RBP
JNZ 0x0010b79c
MOV RAX,qword ptr [RSP + 0x38]
MOV ECX,0xc
XOR EDX,EDX
XOR R12D,R12D
MOV ESI,0x48
DIV RCX
MOV RDI,RAX
CALL 0x00104938
MOV RBX,qword ptr [RSP + 0x48]
MOV dword ptr [RSP + 0x70],R12D
MOV RBP,RAX
MOV qword ptr [RSP + 0x8],RAX
MOV RAX,qword ptr [RSP + 0x38]
MOV qword ptr [RSP + 0x58],0x0
MOV qword ptr [RSP + 0x30],RAX
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x50],0x0
MOV qword ptr [RSP + 0x60],0x0
MOV dword ptr [RSP + 0x28],0x0
MOV dword ptr [RSP + 0x40],0x0
MOV qword ptr [RSP + 0x20],R13
MOV qword ptr [RSP + 0x10],R14
MOV R14,RBX
CMP qword ptr [RSP + 0x30],0xb
JBE 0x0010b185
MOV RAX,qword ptr [R15 + 0x8]
MOV RDI,R14
CALL qword ptr [RAX + 0x38]
LEA RDI,[R14 + 0x4]
LEA RSI,[RAX + 0x3]
MOV RAX,qword ptr [R15 + 0x8]
AND RSI,-0x4
MOV qword ptr [RBP],RSI
MOV qword ptr [RSP + 0x80],RSI
CALL qword ptr [RAX + 0x38]
LEA RDI,[R14 + 0x8]
LEA RDX,[RAX + 0x3]
MOV RAX,qword ptr [R15 + 0x8]
AND RDX,-0x4
MOV R13,RDX
MOV qword ptr [RBP + 0x8],RDX
CALL qword ptr [RAX + 0x38]
MOV RSI,qword ptr [RSP + 0x80]
MOV qword ptr [RSP + 0x78],RAX
MOV qword ptr [RBP + 0x10],RAX
SUB RAX,0x100
CMP RAX,0x1
JA 0x0010b80f
LEA RAX,[RSI + R13*0x1]
LEA RBX,[RAX + 0xc]
CMP RBX,qword ptr [RSP + 0x30]
JA 0x0010b722
CMP RSI,0x1
JBE 0x0010b7d6
LEA RCX,[R14 + 0xc]
LEA R12,[R14 + RSI*0x1 + 0xc]
ADD RBX,R14
MOV qword ptr [RBP + 0x18],RCX
MOV RCX,-0xc
SUB RCX,RAX
MOV qword ptr [RBP + 0x20],R12
MOVZX EAX,byte ptr [R14 + 0xc]
ADD qword ptr [RSP + 0x30],RCX
CMP AL,0x24
JZ 0x0010b165
CMP RSI,0x4
JBE 0x0010afb6
CMP AL,0x47
JZ 0x0010b764
CMP R13,0x4
JZ 0x0010b11e
JBE 0x0010b03d
CMP R13,0x8
JZ 0x0010b134
CMP R13,0x10
JNZ 0x0010b046
MOV RAX,qword ptr [R15 + 0x8]
MOV RDI,R12
CALL qword ptr [RAX + 0x20]
LEA RDI,[R12 + 0x8]
MOV R13,RAX
MOV RAX,qword ptr [R15 + 0x8]
CALL qword ptr [RAX + 0x20]
CMP qword ptr [RSP + 0x78],0x100
JZ 0x0010b0d3
TEST R13,R13
CMOVZ R13,qword ptr [RSP + 0x60]
TEST RAX,RAX
CMOVZ RAX,qword ptr [RSP + 0x68]
MOV qword ptr [RSP + 0x60],R13
MOV qword ptr [RBP + 0x30],R13
MOV qword ptr [RSP + 0x68],RAX
MOV qword ptr [RBP + 0x38],RAX
MOV RDX,qword ptr [RBP + 0x18]
MOV RAX,qword ptr [RBP]
CMP byte ptr [RDX + RAX*0x1 + -0x1],0x0
JNZ 0x0010b0fc
ADD RBP,0x48
MOV R14,RBX
JMP 0x0010aeeb
TEST R13,R13
JNZ 0x0010b046
XOR EAX,EAX
JMP 0x0010afeb
MOV EDX,0x5
LEA RSI,[0x121530]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
TEST RAX,RAX
JZ 0x0010b098
MOV EDI,0x11
MOV qword ptr [RSP + 0x10],RAX
CALL 0x00104380
MOV RAX,qword ptr [RSP + 0x10]
MOV RDX,R14
MOV RSI,R15
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
MOV dword ptr [0x0012cb24],0x1
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00104920
MOV RDI,qword ptr [0x0012cb18]
CALL 0x00104920
MOV qword ptr [0x0012cb18],0x0
MOV dword ptr [0x0012cb20],0x0
MOV qword ptr [0x0012cb10],0x0
JMP 0x0010941b
TEST R13,R13
CMOVZ R13,qword ptr [RSP + 0x50]
TEST RAX,RAX
CMOVZ RAX,qword ptr [RSP + 0x58]
MOV qword ptr [RSP + 0x50],R13
MOV qword ptr [RBP + 0x30],R13
MOV qword ptr [RSP + 0x58],RAX
MOV qword ptr [RBP + 0x38],RAX
JMP 0x0010b01e
MOV EDX,0x5
LEA RSI,[0x121568]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
JMP 0x0010b063
MOV RAX,qword ptr [R15 + 0x8]
MOV RDI,R12
CALL qword ptr [RAX + 0x38]
MOV R13,RAX
OR RAX,-0x1
JMP 0x0010afeb
MOV RAX,qword ptr [R15 + 0x8]
MOV RDI,R12
CMP dword ptr [RAX + 0x8],0x5
JNZ 0x0010b7f8
MOV RDX,qword ptr [R15 + 0xf8]
CMP byte ptr [RDX + 0x4],0x2
JNZ 0x0010b7f8
CALL qword ptr [RAX + 0x20]
MOV R13,RAX
OR RAX,-0x1
JMP 0x0010afeb
CMP byte ptr [R14 + 0xd],0x1
JNZ 0x0010afb6
CMP byte ptr [R14 + 0xe],0x31
JNZ 0x0010afb6
ADD dword ptr [RSP + 0x70],0x1
JMP 0x0010afb6
CMP qword ptr [RSP + 0x30],0x0
MOV R14,qword ptr [RSP + 0x10]
MOV qword ptr [RSP + 0x50],RBP
MOV R12D,dword ptr [RSP + 0x70]
MOV R13,qword ptr [RSP + 0x20]
JNZ 0x0010b2ee
MOV EAX,dword ptr [RSP + 0x40]
MOV ECX,R12D
OR EAX,dword ptr [RSP + 0x28]
OR ECX,EAX
JZ 0x0010b2d6
TEST R12D,R12D
JZ 0x0010b1c1
TEST EAX,EAX
JNZ 0x0010b1cf
CMP dword ptr [RSP + 0x40],0x0
JZ 0x0010b1e7
CMP dword ptr [RSP + 0x28],0x0
JZ 0x0010b1e7
MOV EDX,0x5
LEA RSI,[0x121620]
XOR EDI,EDI
CALL 0x00104240
JMP 0x0010b063
CMP R12D,0x1
SETZ DL
CMP dword ptr [RSP + 0x40],0x1
SETZ AL
OR DL,AL
JNZ 0x0010b098
CMP dword ptr [RSP + 0x28],0x1
JZ 0x0010b098
CMP R12D,0x1
MOV RDI,qword ptr [RSP + 0x8]
SBB EAX,EAX
AND EAX,0x2
MOV RDX,qword ptr [RDI + 0x18]
ADD EAX,0x1
MOVSXD RCX,EAX
CMP byte ptr [RDX + RCX*0x1],0x1
MOV qword ptr [RSP + 0x58],RCX
JNZ 0x0010b642
ADD EAX,0x1
MOV RCX,qword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x10],0x0
MOV dword ptr [RSP + 0x40],EAX
CDQE
LEA R12,[RCX + 0x48]
MOV qword ptr [RSP + 0x20],RAX
JMP 0x0010b255
ADD R12,0x48
CMP qword ptr [RSP + 0x50],R12
JBE 0x0010b3d7
CMP qword ptr [R12 + 0x10],0x100
JNZ 0x0010b251
MOV RSI,qword ptr [R12 + 0x18]
MOV RAX,qword ptr [RSP + 0x58]
LEA RBX,[R12 + -0x48]
XOR EBP,EBP
MOVZX EAX,byte ptr [RSI + RAX*0x1]
MOV byte ptr [RSP + 0x60],AL
MOV RAX,qword ptr [RSP + 0x20]
ADD RAX,RSI
MOV qword ptr [RSP + 0x70],RAX
JMP 0x0010b2a5
CMP byte ptr [RSP + 0x60],DL
JNZ 0x0010b2a1
CMP RAX,0x100
JZ 0x0010b306
SUB RBX,0x48
CMP qword ptr [RSP + 0x8],RBX
JA 0x0010b251
MOV RAX,qword ptr [RSP + 0x58]
MOV RDI,qword ptr [RBX + 0x18]
MOVZX EDX,byte ptr [RDI + RAX*0x1]
MOV RAX,qword ptr [RBX + 0x10]
TEST RBP,RBP
JNZ 0x0010b293
CMP qword ptr [RBX + 0x8],0x0
JZ 0x0010b293
CMP RAX,0x101
JZ 0x0010b2a1
MOV RBP,RBX
JMP 0x0010b293
MOV EDX,0x5
LEA RSI,[0x1215e0]
XOR EDI,EDI
CALL 0x00104240
JMP 0x0010b063
MOV EDX,0x5
LEA RSI,[0x1215a8]
XOR EDI,EDI
CALL 0x00104240
JMP 0x0010b063
MOV RAX,qword ptr [R12]
CMP DL,0x4
JNZ 0x0010b65a
MOV R8D,EAX
XOR EDX,EDX
SUB R8D,dword ptr [RSP + 0x40]
XOR EAX,EAX
JMP 0x0010b335
MOV R10,qword ptr [RSP + 0x70]
MOVZX R9D,byte ptr [R10 + RDX*0x1]
ADD RDX,0x1
SHL R9,CL
OR RAX,R9
LEA ECX,[RDX*0x8]
CMP R8,RDX
JNZ 0x0010b321
MOV RCX,qword ptr [RSP + 0x20]
MOV R11,qword ptr [RBX]
XOR R8D,R8D
XOR R9D,R9D
LEA RDX,[RDI + RCX*0x1]
MOV ECX,R11D
SUB ECX,dword ptr [RSP + 0x40]
MOV qword ptr [RSP + 0x68],RCX
JMP 0x0010b370
MOVZX R10D,byte ptr [RDX + R8*0x1]
ADD R8,0x1
SHL R10,CL
OR R9,R10
LEA ECX,[R8*0x8]
CMP qword ptr [RSP + 0x68],R8
JNZ 0x0010b361
ADD RAX,R9
XOR ECX,ECX
MOV R8,RAX
JMP 0x0010b390
ADD ECX,0x1
SHR R8,0x8
TEST R8,R8
JNZ 0x0010b389
MOV R8,R11
SUB R8,qword ptr [RSP + 0x20]
CMP RCX,R8
JNC 0x0010b2a1
LEA RCX,[RDI + R11*0x1]
JMP 0x0010b3bc
ADD RDX,0x1
MOV byte ptr [RDX + -0x1],AL
TEST RAX,RAX
JZ 0x0010b3c1
SHR RAX,0x8
CMP RDX,RCX
JC 0x0010b3ac
MOV qword ptr [R12 + 0x10],0x0
MOV dword ptr [RSP + 0x10],0x1
JMP 0x0010b251
CMP dword ptr [RSP + 0x10],0x0
JZ 0x0010b098
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00104370
MOV RCX,qword ptr [RSP + 0x48]
MOV RBP,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x70],R14
MOV R12,RAX
MOV qword ptr [RSP + 0x68],RAX
XOR EAX,EAX
MOV qword ptr [RSP + 0x78],R13
MOV R14,R12
MOV R13,RBP
MOV qword ptr [RSP + 0x28],RCX
JMP 0x0010b50d
LEA RDI,[R14 + 0x4]
MOV RSI,qword ptr [R15 + 0x8]
MOV RCX,qword ptr [R13 + 0x30]
MOV qword ptr [RSP + 0x60],RDI
LEA RDI,[R14 + 0x8]
MOV qword ptr [RSP + 0x58],RDI
LEA RDI,[R14 + 0xc]
MOV R9,qword ptr [RSI + 0x48]
MOV RSI,R14
MOV qword ptr [RSP + 0x40],RDI
LEA RBX,[RDI + RBP*0x1]
MOV RDI,RBP
MOV qword ptr [RSP + 0x20],RCX
CMP RCX,qword ptr [RSP + 0x30]
JZ 0x0010b5e8
CALL R9
MOV RAX,qword ptr [R15 + 0x8]
MOV EDI,0x8
CMP dword ptr [RAX + 0x8],0x5
MOV R8,qword ptr [RAX + 0x48]
JNZ 0x0010b48a
MOV RAX,qword ptr [R15 + 0xf8]
XOR EDI,EDI
CMP byte ptr [RAX + 0x4],0x2
SETZ DIL
LEA RDI,[0x8 + RDI*0x8]
MOV RSI,qword ptr [RSP + 0x60]
LEA R14,[RBX + 0x8]
CALL R8
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,qword ptr [RSP + 0x58]
MOV RDI,R12
CALL qword ptr [RAX + 0x48]
MOV RSI,qword ptr [R13 + 0x18]
MOV RDI,qword ptr [RSP + 0x40]
MOV RDX,RBP
CALL 0x00104510
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,RBX
MOV RDI,qword ptr [RSP + 0x20]
CMP dword ptr [RAX + 0x8],0x5
JNZ 0x0010b62b
MOV RDX,qword ptr [R15 + 0xf8]
CMP byte ptr [RDX + 0x4],0x2
JNZ 0x0010b62b
CALL qword ptr [RAX + 0x30]
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,R14
MOV RDI,qword ptr [R13 + 0x38]
LEA R14,[RBX + 0x10]
CALL qword ptr [RAX + 0x30]
MOV RAX,qword ptr [R13 + 0x30]
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [R13 + 0x38]
MOV RDI,qword ptr [RSP + 0x10]
ADD qword ptr [RSP + 0x28],RDI
ADD R13,0x48
CMP qword ptr [RSP + 0x50],R13
JBE 0x0010b556
MOV RBP,qword ptr [R13]
MOV RSI,qword ptr [R13 + 0x8]
MOV R12,qword ptr [R13 + 0x10]
ADD RSI,RBP
LEA RCX,[RSI + 0xc]
MOV qword ptr [RSP + 0x10],RCX
TEST R12,R12
JZ 0x0010b4ff
CMP dword ptr [R13 + 0x40],0x0
JNZ 0x0010b41a
MOV RBX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDI,R14
MOV RDX,RBX
ADD R14,RBX
CALL 0x00104510
JMP 0x0010b4f2
MOV RBP,qword ptr [RSP + 0x68]
MOV R12,R14
MOV RDI,qword ptr [RSP + 0x48]
MOV RBX,R12
MOV R14,qword ptr [RSP + 0x70]
MOV R13,qword ptr [RSP + 0x78]
SUB RBX,RBP
MOV RSI,RBP
MOV RDX,RBX
CALL 0x00104510
MOV RDI,RBP
CALL 0x00104920
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00104920
MOV qword ptr [0x0012cb10],RBX
CMP qword ptr [RSP + 0x38],RBX
JZ 0x0010b0a2
MOV RSI,qword ptr [R14 + 0x68]
TEST RSI,RSI
JZ 0x0010b5be
MOV RDX,RBX
MOV RDI,R13
CALL 0x001045f0
TEST EAX,EAX
JNZ 0x0010941b
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1216a0]
CALL 0x00104240
MOV RDX,R14
MOV RSI,R13
XOR EDI,EDI
MOV RCX,RAX
XOR EAX,EAX
CALL 0x0011c0d0
JMP 0x0010b0a2
CMP qword ptr [R13 + 0x38],RAX
JNZ 0x0010b45b
CALL R9
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,qword ptr [RSP + 0x60]
XOR EDI,EDI
MOV R14,RBX
CALL qword ptr [RAX + 0x48]
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,qword ptr [RSP + 0x58]
MOV RDI,R12
CALL qword ptr [RAX + 0x48]
MOV RSI,qword ptr [R13 + 0x18]
MOV RDI,qword ptr [RSP + 0x40]
MOV RDX,RBP
CALL 0x00104510
JMP 0x0010b4f2
CALL qword ptr [RAX + 0x48]
MOV RAX,qword ptr [R15 + 0x8]
LEA RSI,[RBX + 0x4]
MOV RDI,qword ptr [R13 + 0x38]
CALL qword ptr [RAX + 0x48]
JMP 0x0010b4f2
MOV EDX,0x5
LEA RSI,[0x121660]
XOR EDI,EDI
CALL 0x00104240
JMP 0x0010b063
MOV RDX,qword ptr [RBX]
CMP RDX,RAX
JZ 0x0010b6bc
CMP dword ptr [RSP + 0x28],0x0
JZ 0x0010b68f
MOV dword ptr [R12 + 0x40],0x1
MOV qword ptr [R12 + 0x10],0x101
MOV dword ptr [RBX + 0x40],0x1
MOV qword ptr [RBX + 0x10],0x101
JMP 0x0010b251
CMP qword ptr [R12 + 0x8],0x0
JNZ 0x0010b251
TEST RBP,RBP
JZ 0x0010b251
CMP qword ptr [RBP + 0x10],0x0
JNZ 0x0010b251
MOV qword ptr [RBP + 0x10],0x100
JMP 0x0010b251
CALL 0x00104400
TEST EAX,EAX
JNZ 0x0010b662
MOV RAX,qword ptr [RBX + 0x38]
TEST RAX,RAX
JZ 0x0010b662
MOV RDX,qword ptr [R12 + 0x38]
TEST RDX,RDX
JZ 0x0010b662
CMP RAX,-0x10
JA 0x0010b6f1
LEA RCX,[RAX + 0xf]
AND RCX,-0x10
CMP RCX,qword ptr [R12 + 0x30]
JC 0x0010b662
MOV qword ptr [R12 + 0x10],0x0
CMP RAX,RDX
JNC 0x0010b703
MOV qword ptr [RBX + 0x38],RDX
CMP dword ptr [RSP + 0x28],0x0
MOV dword ptr [RSP + 0x10],0x1
JZ 0x0010b251
MOV dword ptr [RBX + 0x40],0x1
JMP 0x0010b251
MOV EDX,0x5
LEA RSI,[0x121490]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
JMP 0x0010b063
LEA RSI,[0x11e1fe]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x00104240
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b5c0
CMP byte ptr [R14 + 0xd],0x41
JNZ 0x0010afb6
CMP byte ptr [R14 + 0xe],0x24
JNZ 0x0010afb6
CMP byte ptr [R14 + 0xf],0x1
JNZ 0x0010afb6
MOVZX EAX,byte ptr [R14 + 0x10]
CMP AL,0x32
JZ 0x0010b7cc
CMP AL,0x33
JNZ 0x0010b7aa
ADD dword ptr [RSP + 0x28],0x1
JMP 0x0010afb6
MOV qword ptr [RSP + 0x8],0x0
JMP 0x0010b098
MOV EDX,0x5
LEA RSI,[0x1214f8]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
JMP 0x0010b063
ADD dword ptr [RSP + 0x40],0x1
JMP 0x0010afb6
MOV EDX,0x5
LEA RSI,[0x1214c0]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
JMP 0x0010b063
CALL qword ptr [RAX + 0x38]
LEA RDI,[R12 + 0x4]
MOV R13,RAX
MOV RAX,qword ptr [R15 + 0x8]
CALL qword ptr [RAX + 0x38]
JMP 0x0010afeb
MOV EDX,0x5
LEA RSI,[0x121458]
XOR EDI,EDI
MOV R14,qword ptr [RSP + 0x10]
MOV R13,qword ptr [RSP + 0x20]
CALL 0x00104240
JMP 0x0010b063
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nint FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)\n\n{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}\n\n" comment comment (function_definition "int FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)\n\n{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" primitive_type (function_declarator "FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)" identifier (parameter_list "(long param_1,undefined8 *param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" { (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "size_t *psVar6;" primitive_type (pointer_declarator "*psVar6" * identifier) ;) (declaration "void *__dest_00;" primitive_type (pointer_declarator "*__dest_00" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "void *pvVar23;" primitive_type (pointer_declarator "*pvVar23" * identifier) ;) (declaration "long lVar24;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "void *pvVar26;" primitive_type (pointer_declarator "*pvVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "size_t *psVar31;" primitive_type (pointer_declarator "*psVar31" * identifier) ;) (declaration "ulong *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined8 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "long *plVar34;" (sized_type_specifier "long" long) (pointer_declarator "*plVar34" * identifier) ;) (declaration "size_t *psVar35;" primitive_type (pointer_declarator "*psVar35" * identifier) ;) (declaration "size_t *psVar36;" primitive_type (pointer_declarator "*psVar36" * identifier) ;) (declaration "size_t *psVar37;" primitive_type (pointer_declarator "*psVar37" * identifier) ;) (declaration "long lVar38;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar39;" primitive_type (pointer_declarator "*pcVar39" * identifier) ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "ulong uVar41;" type_identifier identifier ;) (declaration "char cVar42;" primitive_type identifier ;) (declaration "byte *pbVar43;" type_identifier (pointer_declarator "*pbVar43" * identifier) ;) (declaration "undefined8 *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "ulong uVar45;" type_identifier identifier ;) (declaration "long *__src;" (sized_type_specifier "long" long) (pointer_declarator "*__src" * identifier) ;) (declaration "long *plVar46;" (sized_type_specifier "long" long) (pointer_declarator "*plVar46" * identifier) ;) (declaration "size_t *psVar47;" primitive_type (pointer_declarator "*psVar47" * identifier) ;) (declaration "void *pvVar48;" primitive_type (pointer_declarator "*pvVar48" * identifier) ;) (declaration "bool bVar49;" primitive_type identifier ;) (declaration "bool bVar50;" primitive_type identifier ;) (declaration "byte bVar51;" type_identifier identifier ;) (declaration "size_t *local_110;" primitive_type (pointer_declarator "*local_110" * identifier) ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "void *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "ulong local_e8;" type_identifier identifier ;) (declaration "size_t local_c8;" primitive_type identifier ;) (declaration "size_t local_c0;" primitive_type identifier ;) (declaration "size_t local_b8;" primitive_type identifier ;) (declaration "size_t local_b0;" primitive_type identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_a0;" type_identifier identifier ;) (declaration "long *local_98;" (sized_type_specifier "long" long) (pointer_declarator "*local_98" * identifier) ;) (declaration "ulong *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78 [4];" type_identifier (array_declarator "local_78 [4]" identifier [ number_literal ]) ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (expression_statement "bVar51 = 0;" (assignment_expression "bVar51 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 0xc)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0xc)" ( (binary_expression "*(long *)(param_1 + 8) + 0xc" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" if (parenthesized_expression "((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2))" ( (binary_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)" (parenthesized_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2)" ( (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2" (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc)" identifier != (pointer_expression "*(int *)(param_2[1] + 0xc)" * (cast_expression "(int *)(param_2[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0xc)" ( (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) && (binary_expression "iVar7 != 2" identifier != number_literal)) )) && (parenthesized_expression "(*(int *)(param_2[1] + 0xc) != 2)" ( (binary_expression "*(int *)(param_2[1] + 0xc) != 2" (pointer_expression "*(int *)(param_2[1] + 0xc)" * (cast_expression "(int *)(param_2[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0xc)" ( (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" { (expression_statement "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier = (call_expression "dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier (argument_list "(0,"Unable to change endianness of input file(s)",5)" ( number_literal , (string_literal ""Unable to change endianness of input file(s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" ( identifier , (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" * (cast_expression "(byte *)(param_1 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }" { (labeled_statement "LAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" identifier (argument_list "(0,param_2,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;)) }) (else_clause "else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" else (compound_statement "{\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" { (if_statement "if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x90) == 0)" ( (binary_expression "*(long *)(param_1 + 0x90) == 0" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar39 = "error: the input file \'%s\' has no sections"" identifier = (string_literal ""error: the input file \'%s\' has no sections"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" else (compound_statement "{\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" { (if_statement "if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" if (parenthesized_expression "(*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5)" ( (binary_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5" (pointer_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1)" * (cast_expression "(int *)(*(undefined8 **)(param_1 + 8) + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" ( (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" { (labeled_statement "LAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" statement_identifier : (if_statement "if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" if (parenthesized_expression "(DAT_0012cb2c != 0)" ( (binary_expression "DAT_0012cb2c != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" { (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar13 = **(undefined8 **)(param_1 + 8);" (assignment_expression "uVar13 = **(undefined8 **)(param_1 + 8)" identifier = (pointer_expression "**(undefined8 **)(param_1 + 8)" * (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = *(undefined8 *)param_2[1];" (assignment_expression "uVar1 = *(undefined8 *)param_2[1]" identifier = (pointer_expression "*(undefined8 *)param_2[1]" * (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar14 = FUN_0011bfe0(param_1);" (assignment_expression "uVar14 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier (argument_list "(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( number_literal , (string_literal ""copy from `%s\' [%s] to `%s\' [%s]\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar39,uVar14,uVar13,uVar12,uVar1);" (call_expression "printf(pcVar39,uVar14,uVar13,uVar12,uVar1)" identifier (argument_list "(pcVar39,uVar14,uVar13,uVar12,uVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" if (parenthesized_expression "(DAT_0012c9f4 == 0)" ( (binary_expression "DAT_0012c9f4 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" { (expression_statement "lVar38 = DAT_0012cae0;" (assignment_expression "lVar38 = DAT_0012cae0" identifier = identifier) ;) (if_statement "if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" if (parenthesized_expression "(DAT_0012cae8 == 0)" ( (binary_expression "DAT_0012cae8 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" { (expression_statement "lVar38 = *(long *)(param_1 + 0xa8);" (assignment_expression "lVar38 = *(long *)(param_1 + 0xa8)" identifier = (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) ))))) ;) })) (expression_statement "lVar38 = lVar38 + _DAT_0012caf0;" (assignment_expression "lVar38 = lVar38 + _DAT_0012caf0" identifier = (binary_expression "lVar38 + _DAT_0012caf0" identifier + identifier)) ;) })) (if_statement "if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x44) & 7) != 3)" ( (binary_expression "(*(byte *)((long)param_2 + 0x44) & 7) != 3" (parenthesized_expression "(*(byte *)((long)param_2 + 0x44) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x44) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x44)" * (cast_expression "(byte *)((long)param_2 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x44)" ( (binary_expression "(long)param_2 + 0x44" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" { (expression_statement "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);" (assignment_expression "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" identifier = (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14)" (unary_expression "~DAT_0012cab0" ~ identifier) & (pointer_expression "*(uint *)(param_2[1] + 0x14)" * (cast_expression "(uint *)(param_2[1] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x14)" ( (binary_expression "param_2[1] + 0x14" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) & (parenthesized_expression "(DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" ( (binary_expression "DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff" identifier | (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0xfffff" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) >> number_literal) & number_literal)) )))) ;) (if_statement "if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }" if (parenthesized_expression "(DAT_0012cb0c == 7)" ( (binary_expression "DAT_0012cb0c == 7" identifier == number_literal) )) (compound_statement "{\n            uVar28 = uVar28 & 0xfffffffe;\n          }" { (expression_statement "uVar28 = uVar28 & 0xfffffffe;" (assignment_expression "uVar28 = uVar28 & 0xfffffffe" identifier = (binary_expression "uVar28 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar7 = bfd_set_start_address(param_2,lVar38);" (assignment_expression "iVar7 = bfd_set_start_address(param_2,lVar38)" identifier = (call_expression "bfd_set_start_address(param_2,lVar38)" identifier (argument_list "(param_2,lVar38)" ( identifier , identifier )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_file_flags(param_2,uVar28)" identifier = (call_expression "bfd_set_file_flags(param_2,uVar28)" identifier (argument_list "(param_2,uVar28)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) })) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar9 = bfd_get_mach(param_1);" (assignment_expression "uVar9 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" { (expression_statement "lVar38 = bfd_get_arch_info(param_1);" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" if (parenthesized_expression "((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0))" ( (binary_expression "(lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" ( (comma_expression "lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "*(int *)(lVar38 + 0xc) == 0" (pointer_expression "*(int *)(lVar38 + 0xc)" * (cast_expression "(int *)(lVar38 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0xc)" ( (binary_expression "lVar38 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }" { (expression_statement "uVar8 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(param_3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_3 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" else (compound_statement "{\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" identifier = (call_expression "dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" identifier (argument_list "(0,"Input file `%s\' ignores binary architecture parameter.",5)" ( number_literal , (string_literal ""Input file `%s\' ignores binary architecture parameter."" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) }))) })) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" identifier = (call_expression "(**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" (parenthesized_expression "(**(code **)(param_2[1] + 0x290))" ( (pointer_expression "**(code **)(param_2[1] + 0x290)" * (pointer_expression "*(code **)(param_2[1] + 0x290)" * (cast_expression "(code **)(param_2[1] + 0x290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x290)" ( (binary_expression "param_2[1] + 0x290" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,uVar8,uVar9)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" { (if_statement "if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 0x47) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x47) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x47) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x47) & 4" (pointer_expression "*(byte *)(param_1 + 0x47)" * (cast_expression "(byte *)(param_1 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x47)" ( (binary_expression "param_1 + 0x47" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" { (labeled_statement "LAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);" statement_identifier : (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar39 = "Unable to recognise the format of the input file `%s\'"" identifier = (string_literal ""Unable to recognise the format of the input file `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" else (compound_statement "{\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" { (expression_statement "uVar12 = bfd_get_mach(param_1);" (assignment_expression "uVar12 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar12 = bfd_printable_arch_mach(uVar8,uVar12);" (assignment_expression "uVar12 = bfd_printable_arch_mach(uVar8,uVar12)" identifier = (call_expression "bfd_printable_arch_mach(uVar8,uVar12)" identifier (argument_list "(uVar8,uVar12)" ( identifier , identifier )))) ;) (expression_statement "pcVar39 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar39 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar10 = bfd_get_arch(param_2);" (assignment_expression "iVar10 = bfd_get_arch(param_2)" identifier = (call_expression "bfd_get_arch(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar7 != iVar10) goto LAB_0010916a;" if (parenthesized_expression "(iVar7 != iVar10)" ( (binary_expression "iVar7 != iVar10" identifier != identifier) )) (goto_statement "goto LAB_0010916a;" goto statement_identifier ;)) })) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" ( identifier , (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" * (cast_expression "(byte *)(param_1 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" { (labeled_statement "LAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_1,0,0);" (call_expression "FUN_0011c0d0(0,param_1,0,0)" identifier (argument_list "(0,param_1,0,0)" ( number_literal , identifier , number_literal , number_literal ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);" (assignment_expression "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1)" identifier = (pointer_expression "*(uint *)((undefined8 *)param_2[1] + 1)" * (cast_expression "(uint *)((undefined8 *)param_2[1] + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)param_2[1] + 1)" ( (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" identifier = (binary_expression "uVar28 < 2" identifier < number_literal)) ;) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" identifier = (binary_expression "uVar28 == 2" identifier == number_literal)) ;) (if_statement "if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" if (parenthesized_expression "(bVar50)" ( identifier )) (compound_statement "{\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" { (expression_statement "lVar38 = 4;" (assignment_expression "lVar38 = 4" identifier = number_literal) ;) (expression_statement "pbVar40 = *(byte **)param_2[1];" (assignment_expression "pbVar40 = *(byte **)param_2[1]" identifier = (pointer_expression "*(byte **)param_2[1]" * (cast_expression "(byte **)param_2[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);" do (compound_statement "{\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          }" { (if_statement "if (lVar38 == 0) break;" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar38 = lVar38 + -1;" (assignment_expression "lVar38 = lVar38 + -1" identifier = (binary_expression "lVar38 + -1" identifier + number_literal)) ;) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" identifier = (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" identifier = (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar50)" ( identifier )) ;) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" if (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" ( (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" ( (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" ! identifier) && (unary_expression "!bVar50" ! identifier)) )) == identifier) )) (compound_statement "{\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" { (expression_statement "lVar38 = param_2[0x1f];" (assignment_expression "lVar38 = param_2[0x1f]" identifier = (subscript_expression "param_2[0x1f]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);" (assignment_expression "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1)" identifier = (pointer_expression "*(uint *)(*(undefined8 **)(param_1 + 8) + 1)" * (cast_expression "(uint *)(*(undefined8 **)(param_1 + 8) + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" ( (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" identifier = (binary_expression "uVar28 < 2" identifier < number_literal)) ;) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" identifier = (binary_expression "uVar28 == 2" identifier == number_literal)) ;) (if_statement "if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" if (parenthesized_expression "(bVar50)" ( identifier )) (compound_statement "{\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" { (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" identifier = number_literal) ;) (expression_statement "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);" (assignment_expression "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8)" identifier = (cast_expression "(byte *)**(undefined8 **)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(param_1 + 8)" * (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))))) ;) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);" do (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" identifier = (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" identifier = (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar50)" ( identifier )) ;) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" if (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" ( (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" ( (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" ! identifier) && (unary_expression "!bVar50" ! identifier)) )) == identifier) )) (compound_statement "{\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" { (expression_statement "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);" (assignment_expression "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" identifier = (cast_expression "(undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 200)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 200" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar44 = (undefined8 *)(lVar38 + 200);" (assignment_expression "puVar44 = (undefined8 *)(lVar38 + 200)" identifier = (cast_expression "(undefined8 *)(lVar38 + 200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 200)" ( (binary_expression "lVar38 + 200" identifier + number_literal) )))) ;) (for_statement "for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" for ( (assignment_expression "lVar16 = 0x37" identifier = number_literal) ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" { (expression_statement "*puVar44 = *puVar33;" (assignment_expression "*puVar44 = *puVar33" (pointer_expression "*puVar44" * identifier) = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "puVar33 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar33 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "puVar44 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar44 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) })) (expression_statement "uVar21 = DAT_0012b4f8;" (assignment_expression "uVar21 = DAT_0012b4f8" identifier = identifier) ;) (if_statement "if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" if (parenthesized_expression "(DAT_0012b4f8 == 0xffffffffffffffff)" ( (binary_expression "DAT_0012b4f8 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }" { (expression_statement "DAT_0012b4f8 = 0x200;" (assignment_expression "DAT_0012b4f8 = 0x200" identifier = number_literal) ;) (expression_statement "uVar21 = 0x200;" (assignment_expression "uVar21 = 0x200" identifier = number_literal) ;) }) (else_clause "else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" else (compound_statement "{\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" { (expression_statement "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;" (assignment_expression "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8" (pointer_expression "*(ulong *)(lVar38 + 0x110)" * (cast_expression "(ulong *)(lVar38 + 0x110)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x110)" ( (binary_expression "lVar38 + 0x110" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" if (parenthesized_expression "(DAT_0012b4f0 != -1)" ( (binary_expression "DAT_0012b4f0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4f0;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4f0" (pointer_expression "*(long *)(lVar38 + 0x168)" * (cast_expression "(long *)(lVar38 + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x168)" ( (binary_expression "lVar38 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" if (parenthesized_expression "(DAT_0012b4e8 != -1)" ( (binary_expression "DAT_0012b4e8 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" { (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4e8;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4e8" (pointer_expression "*(long *)(lVar38 + 0x168)" * (cast_expression "(long *)(lVar38 + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x168)" ( (binary_expression "lVar38 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" if (parenthesized_expression "(DAT_0012b4e0 != -1)" ( (binary_expression "DAT_0012b4e0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x100) = DAT_0012b4e0;" (assignment_expression "*(long *)(lVar38 + 0x100) = DAT_0012b4e0" (pointer_expression "*(long *)(lVar38 + 0x100)" * (cast_expression "(long *)(lVar38 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x100)" ( (binary_expression "lVar38 + 0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar29 = DAT_0012b4d8;" (assignment_expression "uVar29 = DAT_0012b4d8" identifier = identifier) ;) (if_statement "if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" if (parenthesized_expression "(DAT_0012b4d8 == 0xffffffffffffffff)" ( (binary_expression "DAT_0012b4d8 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }" { (expression_statement "DAT_0012b4d8 = 0x1000;" (assignment_expression "DAT_0012b4d8 = 0x1000" identifier = number_literal) ;) (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" identifier = number_literal) ;) }) (else_clause "else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" else (compound_statement "{\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" { (expression_statement "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;" (assignment_expression "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8" (pointer_expression "*(ulong *)(lVar38 + 0x108)" * (cast_expression "(ulong *)(lVar38 + 0x108)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x108)" ( (binary_expression "lVar38 + 0x108" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" if (parenthesized_expression "(DAT_0012b4d0 != -1)" ( (binary_expression "DAT_0012b4d0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4d0;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4d0" (pointer_expression "*(long *)(lVar38 + 0x158)" * (cast_expression "(long *)(lVar38 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x158)" ( (binary_expression "lVar38 + 0x158" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" if (parenthesized_expression "(DAT_0012b4c8 != -1)" ( (binary_expression "DAT_0012b4c8 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" { (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4c8;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4c8" (pointer_expression "*(long *)(lVar38 + 0x158)" * (cast_expression "(long *)(lVar38 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x158)" ( (binary_expression "lVar38 + 0x158" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" if (parenthesized_expression "(DAT_0012b4c4 != -1)" ( (binary_expression "DAT_0012b4c4 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" { (expression_statement "*(short *)(lVar38 + 0x148) = DAT_0012b4c4;" (assignment_expression "*(short *)(lVar38 + 0x148) = DAT_0012b4c4" (pointer_expression "*(short *)(lVar38 + 0x148)" * (cast_expression "(short *)(lVar38 + 0x148)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x148)" ( (binary_expression "lVar38 + 0x148" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" if (parenthesized_expression "(DAT_0012b4c2 != -1)" ( (binary_expression "DAT_0012b4c2 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" { (expression_statement "*(short *)(lVar38 + 0x120) = DAT_0012b4c2;" (assignment_expression "*(short *)(lVar38 + 0x120) = DAT_0012b4c2" (pointer_expression "*(short *)(lVar38 + 0x120)" * (cast_expression "(short *)(lVar38 + 0x120)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x120)" ( (binary_expression "lVar38 + 0x120" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" if (parenthesized_expression "(DAT_0012b4c0 != -1)" ( (binary_expression "DAT_0012b4c0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" { (expression_statement "*(short *)(lVar38 + 0x122) = DAT_0012b4c0;" (assignment_expression "*(short *)(lVar38 + 0x122) = DAT_0012b4c0" (pointer_expression "*(short *)(lVar38 + 0x122)" * (cast_expression "(short *)(lVar38 + 0x122)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x122)" ( (binary_expression "lVar38 + 0x122" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" if (parenthesized_expression "(uVar29 < uVar21)" ( (binary_expression "uVar29 < uVar21" identifier < identifier) )) (compound_statement "{\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" { (expression_statement "sprintf((char *)local_78,"%016lx");" (call_expression "sprintf((char *)local_78,"%016lx")" identifier (argument_list "((char *)local_78,"%016lx")" ( (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%016lx"" " string_content ") ))) ;) (expression_statement "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);" (call_expression "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8)" identifier (argument_list "((char *)&local_58,"%016lx",DAT_0012b4d8)" ( (cast_expression "(char *)&local_58" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_58" & identifier)) , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" identifier = (call_expression "dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" identifier (argument_list "(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" ( number_literal , (string_literal ""warning: file alignment (0x%s) > section alignment (0x%s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,local_78,&local_58);" (call_expression "FUN_0011b660(uVar12,local_78,&local_58)" identifier (argument_list "(uVar12,local_78,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) })) })) })) (expression_statement "plVar15 = DAT_0012cb40;" (assignment_expression "plVar15 = DAT_0012cb40" identifier = identifier) ;) (if_statement "if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }" if (parenthesized_expression "(DAT_0012cb40 != (long *)0x0)" ( (binary_expression "DAT_0012cb40 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(DAT_0012cb40);\n        }" { (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" identifier (argument_list "(DAT_0012cb40)" ( identifier ))) ;) })) (if_statement "if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }" if (parenthesized_expression "(plVar15 != DAT_0012cb38)" ( (binary_expression "plVar15 != DAT_0012cb38" identifier != identifier) )) (compound_statement "{\n          free(DAT_0012cb38);\n        }" { (expression_statement "free(DAT_0012cb38);" (call_expression "free(DAT_0012cb38)" identifier (argument_list "(DAT_0012cb38)" ( identifier ))) ;) })) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);" (assignment_expression "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f0)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f0)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f0)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1f0" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar38 < 0) goto LAB_001091b0;" if (parenthesized_expression "(lVar38 < 0)" ( (binary_expression "lVar38 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (expression_statement "DAT_0012cb38 = (long *)xmalloc(lVar38);" (assignment_expression "DAT_0012cb38 = (long *)xmalloc(lVar38)" identifier = (cast_expression "(long *)xmalloc(lVar38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar38)" identifier (argument_list "(lVar38)" ( identifier ))))) ;) (expression_statement "DAT_0012cb40 = DAT_0012cb38;" (assignment_expression "DAT_0012cb40 = DAT_0012cb38" identifier = identifier) ;) (expression_statement "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);" (assignment_expression "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f8)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f8)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f8)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1f8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,DAT_0012cb38)" ( identifier , identifier )))) ;) (if_statement "if ((long)local_100 < 0) goto LAB_001091b0;" if (parenthesized_expression "((long)local_100 < 0)" ( (binary_expression "(long)local_100 < 0" (cast_expression "(long)local_100" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (if_statement "if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" { (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" identifier (argument_list "(DAT_0012cb40)" ( identifier ))) ;) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bfd_map_over_sections(param_1,FUN_001083b0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_001083b0,param_2)" identifier (argument_list "(param_1,FUN_001083b0,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ;) (if_statement "if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" if (parenthesized_expression "((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0))" ( (binary_expression "(DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012c9f4 == 0)" ( (binary_expression "DAT_0012c9f4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0x160))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x160))" ( (pointer_expression "**(code **)(param_2[1] + 0x160)" * (pointer_expression "*(code **)(param_2[1] + 0x160)" * (cast_expression "(code **)(param_2[1] + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x160)" ( (binary_expression "param_2[1] + 0x160" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (comma_expression "puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar12 = dcgettext(0,"error in private header data",5)" identifier = (call_expression "dcgettext(0,"error in private header data",5)" identifier (argument_list "(0,"error in private header data",5)" ( number_literal , (string_literal ""error in private header data"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar12)" identifier (argument_list "(0,param_1,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ;) })) (for_statement "for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" for ( ; (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" { (expression_statement "uVar28 = 0x128;" (assignment_expression "uVar28 = 0x128" identifier = number_literal) ;) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x40);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x40)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0x40)" identifier (argument_list "(puVar33[1],0,0x40)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" { (expression_statement "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;" (assignment_expression "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100" identifier = (binary_expression "*(uint *)(lVar38 + 0x28) | 0x100" (pointer_expression "*(uint *)(lVar38 + 0x28)" * (cast_expression "(uint *)(lVar38 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,puVar33[1])" identifier = (call_expression "bfd_get_section_by_name(param_2,puVar33[1])" identifier (argument_list "(param_2,puVar33[1])" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "can\'t add section \'%s\'";" (assignment_expression "pcVar39 = "can\'t add section \'%s\'"" identifier = (string_literal ""can\'t add section \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" identifier = (call_expression "bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" identifier (argument_list "(param_2,puVar33[1],uVar28 | 0x100000)" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) , (binary_expression "uVar28 | 0x100000" identifier | number_literal) )))) ;) (expression_statement "puVar33[5] = lVar38;" (assignment_expression "puVar33[5] = lVar38" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "can\'t create section `%s\'";" (assignment_expression "pcVar39 = "can\'t create section `%s\'"" identifier = (string_literal ""can\'t create section `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3])" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,puVar33[3])" identifier (argument_list "(param_2,lVar38,puVar33[3])" ( identifier , identifier , (subscript_expression "puVar33[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_00109aa8;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109aa8;" goto statement_identifier ;)) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0xc);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0xc)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0xc)" identifier (argument_list "(puVar33[1],0,0xc)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" { (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x18);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x18)" identifier = (pointer_expression "*(undefined8 *)(lVar38 + 0x18)" * (cast_expression "(undefined8 *)(lVar38 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x18)" ( (binary_expression "lVar38 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar38 = puVar33[5];" (assignment_expression "lVar38 = puVar33[5]" identifier = (subscript_expression "puVar33[5]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;" (assignment_expression "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" * (cast_expression "(byte *)(lVar38 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x24)" ( (binary_expression "lVar38 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" * (cast_expression "(byte *)(lVar38 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x24)" ( (binary_expression "lVar38 + 0x24" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined8 *)(lVar38 + 0x30) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x30) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x30)" * (cast_expression "(undefined8 *)(lVar38 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar38 + 0x28) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x28) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x28)" * (cast_expression "(undefined8 *)(lVar38 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x30);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x30)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0x30)" identifier (argument_list "(puVar33[1],0,0x30)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" { (expression_statement "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);" (assignment_expression "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20)" (pointer_expression "*(undefined8 *)(puVar33[5] + 0x30)" * (cast_expression "(undefined8 *)(puVar33[5] + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33[5] + 0x30)" ( (binary_expression "puVar33[5] + 0x30" (subscript_expression "puVar33[5]" identifier [ number_literal ]) + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar38 + 0x20)" * (cast_expression "(undefined8 *)(lVar38 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x20)" ( (binary_expression "lVar38 + 0x20" identifier + number_literal) ))))) ;) })) })) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "puVar44 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar44 = (undefined8 *)*puVar44" identifier = (cast_expression "(undefined8 *)*puVar44" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar44" * identifier))) ) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar44[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar44[1])" identifier (argument_list "(param_1,puVar44[1])" ( identifier , (subscript_expression "puVar44[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar44[5] = lVar38;" (assignment_expression "puVar44[5] = lVar38" (subscript_expression "puVar44[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" { (expression_statement "uVar12 = puVar44[1];" (assignment_expression "uVar12 = puVar44[1]" identifier = (subscript_expression "puVar44[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar39 = "error: %s not found, can\'t be updated"" identifier = (string_literal ""error: %s not found, can\'t be updated"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010952f;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(lVar38 + 0x68)" * (cast_expression "(undefined8 *)(lVar38 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3])" identifier = (call_expression "bfd_set_section_size(param_2,uVar12,puVar44[3])" identifier (argument_list "(param_2,uVar12,puVar44[3])" ( identifier , identifier , (subscript_expression "puVar44[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" { (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" identifier (argument_list "(0,param_2,uVar12,0)" ( number_literal , identifier , identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" if (parenthesized_expression "((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))))" ( (binary_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" (parenthesized_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0))" ( (binary_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)" (parenthesized_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0))" ( (binary_expression "(DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" ( (comma_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes")" identifier = (call_expression "bfd_get_section_by_name(param_1,".gnu.build.attributes")" identifier (argument_list "(param_1,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" ( (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier = (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier (argument_list "(lVar38,lVar38 + 0xe0)" ( identifier , (binary_expression "lVar38 + 0xe0" identifier + number_literal) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" { (expression_statement "uVar21 = *(ulong *)(lVar38 + 0x38);" (assignment_expression "uVar21 = *(ulong *)(lVar38 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar38 + 0x38)" * (cast_expression "(ulong *)(lVar38 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }" { (expression_statement "uVar12 = dcgettext(0,"warning: note section is empty",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: note section is empty",5)" identifier = (call_expression "dcgettext(0,"warning: note section is empty",5)" identifier (argument_list "(0,"warning: note section is empty",5)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" else (compound_statement "{\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" { (expression_statement "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);" (assignment_expression "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" identifier = (call_expression "bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" identifier (argument_list "(param_1,lVar38,&DAT_0012cb18)" ( identifier , identifier , (pointer_expression "&DAT_0012cb18" & identifier) )))) ;) (expression_statement "__dest_00 = DAT_0012cb18;" (assignment_expression "__dest_00 = DAT_0012cb18" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }" { (expression_statement "uVar12 = dcgettext(0,"warning: could not load note section",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: could not load note section",5)" identifier = (call_expression "dcgettext(0,"warning: could not load note section",5)" identifier (argument_list "(0,"warning: could not load note section",5)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" else (compound_statement "{\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" { (expression_statement "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);" (assignment_expression "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38)" identifier = (call_expression "bfd_get_reloc_upper_bound(param_1,lVar38)" identifier (argument_list "(param_1,lVar38)" ( identifier , identifier )))) ;) (if_statement "if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" if (parenthesized_expression "(0 < lVar16)" ( (binary_expression "0 < lVar16" number_literal < identifier) )) (compound_statement "{\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" { (expression_statement "pvVar23 = (void *)xmalloc(lVar16);" (assignment_expression "pvVar23 = (void *)xmalloc(lVar16)" identifier = (cast_expression "(void *)xmalloc(lVar16)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (expression_statement "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);" (assignment_expression "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" identifier = (call_expression "bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" identifier (argument_list "(param_1,lVar38,pvVar23,DAT_0012cb40)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "free(pvVar23);" (call_expression "free(pvVar23)" identifier (argument_list "(pvVar23)" ( identifier ))) ;) (if_statement "if (lVar16 == 0) goto LAB_0010ae6f;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010ae6f;" goto statement_identifier ;)) (expression_statement "local_110 = (size_t *)0x0;" (assignment_expression "local_110 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;) })) (labeled_statement "LAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" statement_identifier : (expression_statement "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" (assignment_expression "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" identifier = (cast_expression "(size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" identifier (argument_list "(uVar21 / 0xc,0x48,uVar21 % 0xc)" ( (binary_expression "uVar21 / 0xc" identifier / number_literal) , number_literal , (binary_expression "uVar21 % 0xc" identifier % number_literal) ))))) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "psVar35 = local_110;" (assignment_expression "psVar35 = local_110" identifier = identifier) ;) (expression_statement "pvVar23 = __dest_00;" (assignment_expression "pvVar23 = __dest_00" identifier = identifier) ;) (expression_statement "local_e8 = uVar21;" (assignment_expression "local_e8 = uVar21" identifier = identifier) ;) (while_statement "while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" while (parenthesized_expression "(0xb < local_e8)" ( (binary_expression "0xb < local_e8" number_literal < identifier) )) (compound_statement "{\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" { (expression_statement "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);" (assignment_expression "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pvVar23)" ( identifier )))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar41 = lVar24 + 3U & 0xfffffffffffffffc" identifier = (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "*psVar35 = uVar41;" (assignment_expression "*psVar35 = uVar41" (pointer_expression "*psVar35" * identifier) = identifier) ;) (expression_statement "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);" (assignment_expression "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" identifier = (call_expression "(**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "((long)pvVar23 + 4)" ( (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar29 = lVar24 + 3U & 0xfffffffffffffffc" identifier = (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "psVar35[1] = uVar29;" (assignment_expression "psVar35[1] = uVar29" (subscript_expression "psVar35[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar17 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar17 = (**(code **)(lVar16 + 0x38))()" identifier = (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "psVar35[2] = sVar17;" (assignment_expression "psVar35[2] = sVar17" (subscript_expression "psVar35[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(1 < sVar17 - 0x100)" ( (binary_expression "1 < sVar17 - 0x100" number_literal < (binary_expression "sVar17 - 0x100" identifier - number_literal)) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "uVar45 = uVar41 + uVar29 + 0xc;" (assignment_expression "uVar45 = uVar41 + uVar29 + 0xc" identifier = (binary_expression "uVar41 + uVar29 + 0xc" (binary_expression "uVar41 + uVar29" identifier + identifier) + number_literal)) ;) (if_statement "if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(local_e8 < uVar45)" ( (binary_expression "local_e8 < uVar45" identifier < identifier) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(uVar41 < 2)" ( (binary_expression "uVar41 < 2" identifier < number_literal) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: name too small",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "sVar18 = (long)pvVar23 + uVar41 + 0xc;" (assignment_expression "sVar18 = (long)pvVar23 + uVar41 + 0xc" identifier = (binary_expression "(long)pvVar23 + uVar41 + 0xc" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal)) ;) (expression_statement "psVar35[3] = (long)pvVar23 + 0xc;" (assignment_expression "psVar35[3] = (long)pvVar23 + 0xc" (subscript_expression "psVar35[3]" identifier [ number_literal ]) = (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal)) ;) (expression_statement "psVar35[4] = sVar18;" (assignment_expression "psVar35[4] = sVar18" (subscript_expression "psVar35[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));" (assignment_expression "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29))" identifier = (binary_expression "local_e8 + (-0xc - (uVar41 + uVar29))" identifier + (parenthesized_expression "(-0xc - (uVar41 + uVar29))" ( (binary_expression "-0xc - (uVar41 + uVar29)" number_literal - (parenthesized_expression "(uVar41 + uVar29)" ( (binary_expression "uVar41 + uVar29" identifier + identifier) ))) )))) ;) (if_statement "if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == '$')" ( (binary_expression "*(char *)((long)pvVar23 + 0xc) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" * (cast_expression "(char *)((long)pvVar23 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) )) (compound_statement "{\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }" { (if_statement "if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }" if (parenthesized_expression "((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1'))" ( (binary_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')" (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01')" ( (binary_expression "*(char *)((long)pvVar23 + 0xd) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" * (cast_expression "(char *)((long)pvVar23 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xd)" ( (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '1')" ( (binary_expression "*(char *)((long)pvVar23 + 0xe) == '1'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" * (cast_expression "(char *)((long)pvVar23 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xe)" ( (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n                    iVar7 = iVar7 + 1;\n                  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" else (if_statement "if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" if (parenthesized_expression "((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))))" ( (binary_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A'))" ( (binary_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G'))" ( (binary_expression "(4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')" (parenthesized_expression "(4 < uVar41)" ( (binary_expression "4 < uVar41" number_literal < identifier) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == 'G')" ( (binary_expression "*(char *)((long)pvVar23 + 0xc) == 'G'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" * (cast_expression "(char *)((long)pvVar23 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'G'" ' character ')) ))) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == 'A')" ( (binary_expression "*(char *)((long)pvVar23 + 0xd) == 'A'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" * (cast_expression "(char *)((long)pvVar23 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xd)" ( (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'A'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" ( (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))" ( (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')" (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" * (cast_expression "(char *)((long)pvVar23 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xe)" ( (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xf) == '\x01')" ( (binary_expression "*(char *)((long)pvVar23 + 0xf) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xf)" * (cast_expression "(char *)((long)pvVar23 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xf)" ( (binary_expression "(long)pvVar23 + 0xf" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" { (if_statement "if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) == '2')" ( (binary_expression "*(char *)((long)pvVar23 + 0x10) == '2'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" * (cast_expression "(char *)((long)pvVar23 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0x10)" ( (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n                    iVar11 = iVar11 + 1;\n                  }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" else (compound_statement "{\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" { (if_statement "if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) != '3')" ( (binary_expression "*(char *)((long)pvVar23 + 0x10) != '3'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" * (cast_expression "(char *)((long)pvVar23 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0x10)" ( (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'3'" ' character ')) )) (compound_statement "{\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" identifier (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }))) })))) (if_statement "if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 == 4)" ( (binary_expression "uVar29 == 4" identifier == number_literal) )) (compound_statement "{\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }" { (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (if_statement "if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 < 5)" ( (binary_expression "uVar29 < 5" identifier < number_literal) )) (compound_statement "{\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }" { (if_statement "if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" { (labeled_statement "LAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" statement_identifier : (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: bad description size",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal )))) ;)) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "sVar25 = 0;" (assignment_expression "sVar25 = 0" identifier = number_literal) ;) (expression_statement "sVar18 = 0;" (assignment_expression "sVar18 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (if_statement "if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }" { (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" if (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" ( (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" ( (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" * (cast_expression "(int *)(lVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }" { (expression_statement "sVar18 = (**(code **)(lVar16 + 0x20))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x20))()" identifier = (call_expression "(**(code **)(lVar16 + 0x20))()" (parenthesized_expression "(**(code **)(lVar16 + 0x20))" ( (pointer_expression "**(code **)(lVar16 + 0x20)" * (pointer_expression "*(code **)(lVar16 + 0x20)" * (cast_expression "(code **)(lVar16 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" else (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" { (expression_statement "sVar18 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x38))()" identifier = (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (compound_statement "{\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" { (if_statement "if (uVar29 != 0x10) goto LAB_0010b046;" if (parenthesized_expression "(uVar29 != 0x10)" ( (binary_expression "uVar29 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0010b046;" goto statement_identifier ;)) (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" ( (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar18)" ( identifier )))) ;) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" ( (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))))))) (if_statement "if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" if (parenthesized_expression "(sVar17 == 0x100)" ( (binary_expression "sVar17 == 0x100" identifier == number_literal) )) (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }" { (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }" if (parenthesized_expression "(sVar18 == 0)" ( (binary_expression "sVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar18 = local_c8;\n                  }" { (expression_statement "sVar18 = local_c8;" (assignment_expression "sVar18 = local_c8" identifier = identifier) ;) })) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }" if (parenthesized_expression "(sVar25 == 0)" ( (binary_expression "sVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar25 = local_c0;\n                  }" { (expression_statement "sVar25 = local_c0;" (assignment_expression "sVar25 = local_c0" identifier = identifier) ;) })) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c8 = sVar18;" (assignment_expression "local_c8 = sVar18" identifier = identifier) ;) (expression_statement "local_c0 = sVar25;" (assignment_expression "local_c0 = sVar25" identifier = identifier) ;) }) (else_clause "else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" else (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" { (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }" if (parenthesized_expression "(sVar18 == 0)" ( (binary_expression "sVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar18 = local_b8;\n                  }" { (expression_statement "sVar18 = local_b8;" (assignment_expression "sVar18 = local_b8" identifier = identifier) ;) })) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }" if (parenthesized_expression "(sVar25 == 0)" ( (binary_expression "sVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar25 = local_b0;\n                  }" { (expression_statement "sVar25 = local_b0;" (assignment_expression "sVar25 = local_b0" identifier = identifier) ;) })) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b8 = sVar18;" (assignment_expression "local_b8 = sVar18" identifier = identifier) ;) (expression_statement "local_b0 = sVar25;" (assignment_expression "local_b0 = sVar25" identifier = identifier) ;) }))) (if_statement "if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(*(char *)((psVar35[3] - 1) + *psVar35) != '\0')" ( (binary_expression "*(char *)((psVar35[3] - 1) + *psVar35) != '\0'" (pointer_expression "*(char *)((psVar35[3] - 1) + *psVar35)" * (cast_expression "(char *)((psVar35[3] - 1) + *psVar35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((psVar35[3] - 1) + *psVar35)" ( (binary_expression "(psVar35[3] - 1) + *psVar35" (parenthesized_expression "(psVar35[3] - 1)" ( (binary_expression "psVar35[3] - 1" (subscript_expression "psVar35[3]" identifier [ number_literal ]) - number_literal) )) + (pointer_expression "*psVar35" * identifier)) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" identifier (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "psVar35 = psVar35 + 9;" (assignment_expression "psVar35 = psVar35 + 9" identifier = (binary_expression "psVar35 + 9" identifier + number_literal)) ;) (expression_statement "pvVar23 = (void *)(uVar45 + (long)pvVar23);" (assignment_expression "pvVar23 = (void *)(uVar45 + (long)pvVar23)" identifier = (cast_expression "(void *)(uVar45 + (long)pvVar23)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar45 + (long)pvVar23)" ( (binary_expression "uVar45 + (long)pvVar23" identifier + (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) })) (if_statement "if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" if (parenthesized_expression "(local_e8 == 0)" ( (binary_expression "local_e8 == 0" identifier == number_literal) )) (compound_statement "{\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }" { (if_statement "if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(iVar7 == 0 && (iVar11 == 0 && iVar10 == 0))" ( (binary_expression "iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) && (parenthesized_expression "(iVar11 == 0 && iVar10 == 0)" ( (binary_expression "iVar11 == 0 && iVar10 == 0" (binary_expression "iVar11 == 0" identifier == number_literal) && (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" identifier (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0))))" ( (binary_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))" (parenthesized_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0))" ( (binary_expression "(iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 != 0 || iVar10 != 0)" ( (binary_expression "iVar11 != 0 || iVar10 != 0" (binary_expression "iVar11 != 0" identifier != number_literal) || (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar11 != 0 && (iVar10 != 0)))" ( (parenthesized_expression "(iVar11 != 0 && (iVar10 != 0))" ( (binary_expression "iVar11 != 0 && (iVar10 != 0)" (binary_expression "iVar11 != 0" identifier != number_literal) && (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" identifier (argument_list "(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;" if (parenthesized_expression "((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1))" ( (binary_expression "(iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)" (parenthesized_expression "(iVar7 == 1 || iVar11 == 1)" ( (binary_expression "iVar7 == 1 || iVar11 == 1" (binary_expression "iVar7 == 1" identifier == number_literal) || (binary_expression "iVar11 == 1" identifier == number_literal)) )) || (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "uVar28 = -(uint)(iVar7 == 0) & 2;" (assignment_expression "uVar28 = -(uint)(iVar7 == 0) & 2" identifier = (binary_expression "-(uint)(iVar7 == 0) & 2" (unary_expression "-(uint)(iVar7 == 0)" - (call_expression "(uint)(iVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "lVar16 = (long)(int)(uVar28 + 1);" (assignment_expression "lVar16 = (long)(int)(uVar28 + 1)" identifier = (cast_expression "(long)(int)(uVar28 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar28 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 + 1)" ( (binary_expression "uVar28 + 1" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(*(char *)(local_110[3] + lVar16) != '\x01')" ( (binary_expression "*(char *)(local_110[3] + lVar16) != '\x01'" (pointer_expression "*(char *)(local_110[3] + lVar16)" * (cast_expression "(char *)(local_110[3] + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_110[3] + lVar16)" ( (binary_expression "local_110[3] + lVar16" (subscript_expression "local_110[3]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" identifier (argument_list "(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar7 = uVar28 + 2;" (assignment_expression "iVar7 = uVar28 + 2" identifier = (binary_expression "uVar28 + 2" identifier + number_literal)) ;) (expression_statement "bVar49 = false;" (assignment_expression "bVar49 = false" identifier = false) ;) (expression_statement "lVar24 = (long)iVar7;" (assignment_expression "lVar24 = (long)iVar7" identifier = (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "psVar47 = local_110;" (assignment_expression "psVar47 = local_110" identifier = identifier) ;) (labeled_statement "LAB_0010b255:\n                psVar6 = psVar47;" statement_identifier : (expression_statement "psVar6 = psVar47;" (assignment_expression "psVar6 = psVar47" identifier = identifier) ;)) (expression_statement "psVar47 = psVar6 + 9;" (assignment_expression "psVar47 = psVar6 + 9" identifier = (binary_expression "psVar6 + 9" identifier + number_literal)) ;) (if_statement "if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" if (parenthesized_expression "(psVar47 < psVar35)" ( (binary_expression "psVar47 < psVar35" identifier < identifier) )) (compound_statement "{\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" { (if_statement "if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(psVar6[0xb] == 0x100)" ( (binary_expression "psVar6[0xb] == 0x100" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" { (expression_statement "pvVar23 = (void *)psVar6[0xc];" (assignment_expression "pvVar23 = (void *)psVar6[0xc]" identifier = (cast_expression "(void *)psVar6[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar6[0xc]" identifier [ number_literal ]))) ;) (expression_statement "psVar36 = (size_t *)0x0;" (assignment_expression "psVar36 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" for ( (assignment_expression "psVar31 = psVar6" identifier = identifier) ; (binary_expression "local_110 <= psVar31" identifier <= identifier) ; (assignment_expression "psVar31 = psVar31 + -9" identifier = (binary_expression "psVar31 + -9" identifier + number_literal)) ) (compound_statement "{\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" { (expression_statement "pvVar26 = (void *)psVar31[3];" (assignment_expression "pvVar26 = (void *)psVar31[3]" identifier = (cast_expression "(void *)psVar31[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar31[3]" identifier [ number_literal ]))) ;) (expression_statement "psVar37 = psVar36;" (assignment_expression "psVar37 = psVar36" identifier = identifier) ;) (if_statement "if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" if (parenthesized_expression "((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))))" ( (binary_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" (parenthesized_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101))" ( (binary_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)" (parenthesized_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0))" ( (binary_expression "(psVar36 != (size_t *)0x0) || (psVar31[1] == 0)" (parenthesized_expression "(psVar36 != (size_t *)0x0)" ( (binary_expression "psVar36 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar31[1] == 0)" ( (binary_expression "psVar31[1] == 0" (subscript_expression "psVar31[1]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(psVar37 = psVar31, psVar31[2] != 0x101)" ( (comma_expression "psVar37 = psVar31, psVar31[2] != 0x101" (assignment_expression "psVar37 = psVar31" identifier = identifier) , (binary_expression "psVar31[2] != 0x101" (subscript_expression "psVar31[2]" identifier [ number_literal ]) != number_literal)) ))) )) && (parenthesized_expression "((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" ( (parenthesized_expression "(psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))" ( (comma_expression "psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (assignment_expression "psVar36 = psVar37" identifier = identifier) , (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16)" (pointer_expression "*(char *)((long)pvVar23 + lVar16)" * (cast_expression "(char *)((long)pvVar23 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + lVar16)" ( (binary_expression "(long)pvVar23 + lVar16" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) == (pointer_expression "*(char *)((long)pvVar26 + lVar16)" * (cast_expression "(char *)((long)pvVar26 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar16)" ( (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) && (parenthesized_expression "(psVar31[2] == 0x100)" ( (binary_expression "psVar31[2] == 0x100" (subscript_expression "psVar31[2]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" { (if_statement "if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" if (parenthesized_expression "(*(char *)((long)pvVar26 + lVar16) != '\x04')" ( (binary_expression "*(char *)((long)pvVar26 + lVar16) != '\x04'" (pointer_expression "*(char *)((long)pvVar26 + lVar16)" * (cast_expression "(char *)((long)pvVar26 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar16)" ( (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" { (if_statement "if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" if (parenthesized_expression "((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))))" ( (binary_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" (parenthesized_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))))" ( (binary_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" (parenthesized_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0))" ( (binary_expression "(*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" (parenthesized_expression "(*psVar31 == *psVar47)" ( (binary_expression "*psVar31 == *psVar47" (pointer_expression "*psVar31" * identifier) == (pointer_expression "*psVar47" * identifier)) )) && (parenthesized_expression "(iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" ( (comma_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0" (assignment_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31)" identifier = (call_expression "memcmp(pvVar26,pvVar23,*psVar31)" identifier (argument_list "(pvVar26,pvVar23,*psVar31)" ( identifier , identifier , (pointer_expression "*psVar31" * identifier) )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" ( (parenthesized_expression "(uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))" ( (comma_expression "uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (assignment_expression "uVar29 = psVar31[7]" identifier = (subscript_expression "psVar31[7]" identifier [ number_literal ])) , (binary_expression "uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (binary_expression "uVar29 != 0" identifier != number_literal) && (parenthesized_expression "(uVar41 = psVar6[0x10], uVar41 != 0)" ( (comma_expression "uVar41 = psVar6[0x10], uVar41 != 0" (assignment_expression "uVar41 = psVar6[0x10]" identifier = (subscript_expression "psVar6[0x10]" identifier [ number_literal ])) , (binary_expression "uVar41 != 0" identifier != number_literal)) )))) )) ))) )) && (parenthesized_expression "((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" ( (parenthesized_expression "(0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))" ( (binary_expression "0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" (binary_expression "0xfffffffffffffff0 < uVar29" number_literal < identifier) || (parenthesized_expression "(psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" ( (binary_expression "psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)" (subscript_expression "psVar6[0xf]" identifier [ number_literal ]) <= (parenthesized_expression "(uVar29 + 0xf & 0xfffffffffffffff0)" ( (binary_expression "uVar29 + 0xf & 0xfffffffffffffff0" (binary_expression "uVar29 + 0xf" identifier + number_literal) & number_literal) ))) ))) )) ))) )) (compound_statement "{\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }" { (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }" if (parenthesized_expression "(uVar29 < uVar41)" ( (binary_expression "uVar29 < uVar41" identifier < identifier) )) (compound_statement "{\n                              psVar31[7] = uVar41;\n                            }" { (expression_statement "psVar31[7] = uVar41;" (assignment_expression "psVar31[7] = uVar41" (subscript_expression "psVar31[7]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" identifier = true) ;) (if_statement "if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" { (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" * (cast_expression "(undefined4 *)(psVar31 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar31 + 8)" ( (binary_expression "psVar31 + 8" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" else (if_statement "if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }" { (if_statement "if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }" if (parenthesized_expression "(((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0))" ( (binary_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)" (parenthesized_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0))" ( (binary_expression "(psVar6[10] == 0) && (psVar37 != (size_t *)0x0)" (parenthesized_expression "(psVar6[10] == 0)" ( (binary_expression "psVar6[10] == 0" (subscript_expression "psVar6[10]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(psVar37 != (size_t *)0x0)" ( (binary_expression "psVar37 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(psVar37[2] == 0)" ( (binary_expression "psVar37[2] == 0" (subscript_expression "psVar37[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                              psVar37[2] = 0x100;\n                            }" { (expression_statement "psVar37[2] = 0x100;" (assignment_expression "psVar37[2] = 0x100" (subscript_expression "psVar37[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" else (compound_statement "{\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" { (expression_statement "*(undefined4 *)(psVar6 + 0x11) = 1;" (assignment_expression "*(undefined4 *)(psVar6 + 0x11) = 1" (pointer_expression "*(undefined4 *)(psVar6 + 0x11)" * (cast_expression "(undefined4 *)(psVar6 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar6 + 0x11)" ( (binary_expression "psVar6 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "psVar6[0xb] = 0x101;" (assignment_expression "psVar6[0xb] = 0x101" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" * (cast_expression "(undefined4 *)(psVar31 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar31 + 8)" ( (binary_expression "psVar31 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "psVar31[2] = 0x101;" (assignment_expression "psVar31[2] = 0x101" (subscript_expression "psVar31[2]" identifier [ number_literal ]) = number_literal) ;) }))))) (break_statement "break;" break ;) })) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (for_statement "for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" for ( (assignment_expression "uVar41 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)*psVar47 - iVar7) != uVar41" (call_expression "(uint)((int)*psVar47 - iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*psVar47 - iVar7)" ( (binary_expression "(int)*psVar47 - iVar7" (cast_expression "(int)*psVar47" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar47" * identifier)) - identifier) ))) != identifier) ; (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ) (compound_statement "{\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" { (expression_statement "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" identifier = (binary_expression "uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)pvVar23 + uVar41 + lVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + uVar41 + lVar24)" ( (binary_expression "(long)pvVar23 + uVar41 + lVar24" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + identifier) )))) << (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "sVar17 = *psVar31;" (assignment_expression "sVar17 = *psVar31" identifier = (pointer_expression "*psVar31" * identifier)) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (for_statement "for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" for ( (assignment_expression "uVar41 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)sVar17 - iVar7) != uVar41" (call_expression "(uint)((int)sVar17 - iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)sVar17 - iVar7)" ( (binary_expression "(int)sVar17 - iVar7" (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) != identifier) ; (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ) (compound_statement "{\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" { (expression_statement "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" identifier = (binary_expression "uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" (subscript_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41]" (call_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((long)pvVar26 + lVar24))" ( (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar24)" ( (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) ))) [ identifier ]) << (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = uVar29 + uVar45;" (assignment_expression "uVar29 = uVar29 + uVar45" identifier = (binary_expression "uVar29 + uVar45" identifier + identifier)) ;) (for_statement "for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" for ( (assignment_expression "uVar41 = uVar29" identifier = identifier) ; (binary_expression "uVar41 != 0" identifier != number_literal) ; (assignment_expression "uVar41 = uVar41 >> 8" identifier = (binary_expression "uVar41 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" { (expression_statement "uVar27 = (ulong)((int)uVar27 + 1);" (assignment_expression "uVar27 = (ulong)((int)uVar27 + 1)" identifier = (call_expression "(ulong)((int)uVar27 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar27 + 1)" ( (binary_expression "(int)uVar27 + 1" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (if_statement "if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" if (parenthesized_expression "(uVar27 < sVar17 - lVar24)" ( (binary_expression "uVar27 < sVar17 - lVar24" identifier < (binary_expression "sVar17 - lVar24" identifier - identifier)) )) (compound_statement "{\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" { (expression_statement "puVar30 = (undefined1 *)((long)pvVar26 + lVar24);" (assignment_expression "puVar30 = (undefined1 *)((long)pvVar26 + lVar24)" identifier = (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar24)" ( (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) })) })) })) })) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) })) (if_statement "if (!bVar49) goto LAB_0010b098;" if (parenthesized_expression "(!bVar49)" ( (unary_expression "!bVar49" ! identifier) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "pvVar26 = (void *)xmalloc(uVar21);" (assignment_expression "pvVar26 = (void *)xmalloc(uVar21)" identifier = (cast_expression "(void *)xmalloc(uVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar21)" identifier (argument_list "(uVar21)" ( identifier ))))) ;) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = __dest_00;" (assignment_expression "local_f0 = __dest_00" identifier = identifier) ;) (expression_statement "pvVar23 = pvVar26;" (assignment_expression "pvVar23 = pvVar26" identifier = identifier) ;) (for_statement "for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" for ( (assignment_expression "psVar47 = local_110" identifier = identifier) ; (binary_expression "psVar47 < psVar35" identifier < identifier) ; (assignment_expression "psVar47 = psVar47 + 9" identifier = (binary_expression "psVar47 + 9" identifier + number_literal)) ) (compound_statement "{\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" { (expression_statement "sVar25 = *psVar47;" (assignment_expression "sVar25 = *psVar47" identifier = (pointer_expression "*psVar47" * identifier)) ;) (expression_statement "sVar5 = psVar47[2];" (assignment_expression "sVar5 = psVar47[2]" identifier = (subscript_expression "psVar47[2]" identifier [ number_literal ])) ;) (expression_statement "sVar18 = psVar47[1] + sVar25 + 0xc;" (assignment_expression "sVar18 = psVar47[1] + sVar25 + 0xc" identifier = (binary_expression "psVar47[1] + sVar25 + 0xc" (binary_expression "psVar47[1] + sVar25" (subscript_expression "psVar47[1]" identifier [ number_literal ]) + identifier) + number_literal)) ;) (expression_statement "pvVar48 = pvVar23;" (assignment_expression "pvVar48 = pvVar23" identifier = identifier) ;) (if_statement "if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" if (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" { (if_statement "if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" if (parenthesized_expression "((int)psVar47[8] == 0)" ( (binary_expression "(int)psVar47[8] == 0" (cast_expression "(int)psVar47[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "psVar47[8]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }" { (expression_statement "memcpy(pvVar23,local_f0,sVar18);" (call_expression "memcpy(pvVar23,local_f0,sVar18)" identifier (argument_list "(pvVar23,local_f0,sVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar23 + sVar18);" (assignment_expression "pvVar48 = (void *)((long)pvVar23 + sVar18)" identifier = (cast_expression "(void *)((long)pvVar23 + sVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + sVar18)" ( (binary_expression "(long)pvVar23 + sVar18" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" else (compound_statement "{\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" { (expression_statement "sVar3 = psVar47[6];" (assignment_expression "sVar3 = psVar47[6]" identifier = (subscript_expression "psVar47[6]" identifier [ number_literal ])) ;) (expression_statement "__dest = (void *)((long)pvVar23 + 0xc);" (assignment_expression "__dest = (void *)((long)pvVar23 + 0xc)" identifier = (cast_expression "(void *)((long)pvVar23 + 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);" (assignment_expression "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48)" identifier = (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pvVar48 = (void *)((long)__dest + sVar25);" (assignment_expression "pvVar48 = (void *)((long)__dest + sVar25)" identifier = (cast_expression "(void *)((long)__dest + sVar25)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + sVar25)" ( (binary_expression "(long)__dest + sVar25" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" if (parenthesized_expression "((sVar3 == local_e8) && (psVar47[7] == sVar17))" ( (binary_expression "(sVar3 == local_e8) && (psVar47[7] == sVar17)" (parenthesized_expression "(sVar3 == local_e8)" ( (binary_expression "sVar3 == local_e8" identifier == identifier) )) && (parenthesized_expression "(psVar47[7] == sVar17)" ( (binary_expression "psVar47[7] == sVar17" (subscript_expression "psVar47[7]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }" { (expression_statement "(*pcVar4)(sVar25,pvVar23);" (call_expression "(*pcVar4)(sVar25,pvVar23)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(sVar25,pvVar23)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(0,(long)pvVar23 + 4)" ( number_literal , (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar5,(long)pvVar23 + 8)" ( identifier , (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" identifier (argument_list "(__dest,(void *)psVar47[3],sVar25)" ( identifier , (cast_expression "(void *)psVar47[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar47[3]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" else (compound_statement "{\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" { (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "cVar42 = '\b';" (assignment_expression "cVar42 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" if (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5)" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" { (expression_statement "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';" (assignment_expression "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" identifier = (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b'" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) * (char_literal "'\b'" ' escape_sequence ')) + (char_literal "'\b'" ' escape_sequence '))) ;) })) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(cVar42,(long)pvVar23 + 4)" ( identifier , (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar5,(long)pvVar23 + 8)" ( identifier , (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" identifier (argument_list "(__dest,(void *)psVar47[3],sVar25)" ( identifier , (cast_expression "(void *)psVar47[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar47[3]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" if (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" ( (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" ( (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" * (cast_expression "(int *)(lVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }" { (expression_statement "(**(code **)(lVar16 + 0x30))();" (call_expression "(**(code **)(lVar16 + 0x30))()" (parenthesized_expression "(**(code **)(lVar16 + 0x30))" ( (pointer_expression "**(code **)(lVar16 + 0x30)" * (pointer_expression "*(code **)(lVar16 + 0x30)" * (cast_expression "(code **)(lVar16 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8))" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x30)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x30)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x30)" ( (binary_expression "*(long *)(param_1 + 8) + 0x30" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar47[7],(void *)((long)pvVar48 + 8))" ( (subscript_expression "psVar47[7]" identifier [ number_literal ]) , (cast_expression "(void *)((long)pvVar48 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 8)" ( (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 0x10);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 0x10)" identifier = (cast_expression "(void *)((long)pvVar48 + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 0x10)" ( (binary_expression "(long)pvVar48 + 0x10" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" else (compound_statement "{\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" { (expression_statement "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48);" (call_expression "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48)" (parenthesized_expression "(**(code **)(lVar16 + 0x48))" ( (pointer_expression "**(code **)(lVar16 + 0x48)" * (pointer_expression "*(code **)(lVar16 + 0x48)" * (cast_expression "(code **)(lVar16 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x48)" ( (binary_expression "lVar16 + 0x48" identifier + number_literal) ))))) )) (argument_list "(sVar3,pvVar48)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar47[7],(long)pvVar48 + 4)" ( (subscript_expression "psVar47[7]" identifier [ number_literal ]) , (binary_expression "(long)pvVar48 + 4" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 8);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 8)" identifier = (cast_expression "(void *)((long)pvVar48 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 8)" ( (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) }))) }))) (expression_statement "local_e8 = psVar47[6];" (assignment_expression "local_e8 = psVar47[6]" identifier = (subscript_expression "psVar47[6]" identifier [ number_literal ])) ;) (expression_statement "sVar17 = psVar47[7];" (assignment_expression "sVar17 = psVar47[7]" identifier = (subscript_expression "psVar47[7]" identifier [ number_literal ])) ;) })) (expression_statement "local_f0 = (void *)((long)local_f0 + sVar18);" (assignment_expression "local_f0 = (void *)((long)local_f0 + sVar18)" identifier = (cast_expression "(void *)((long)local_f0 + sVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_f0 + sVar18)" ( (binary_expression "(long)local_f0 + sVar18" (cast_expression "(long)local_f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "pvVar23 = pvVar48;" (assignment_expression "pvVar23 = pvVar48" identifier = identifier) ;) })) (expression_statement "sVar17 = (long)pvVar23 - (long)pvVar26;" (assignment_expression "sVar17 = (long)pvVar23 - (long)pvVar26" identifier = (binary_expression "(long)pvVar23 - (long)pvVar26" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "memcpy(__dest_00,pvVar26,sVar17);" (call_expression "memcpy(__dest_00,pvVar26,sVar17)" identifier (argument_list "(__dest_00,pvVar26,sVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" identifier (argument_list "(pvVar26)" ( identifier ))) ;) (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;) (expression_statement "DAT_0012cb10 = sVar17;" (assignment_expression "DAT_0012cb10 = sVar17" identifier = identifier) ;) (if_statement "if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" if (parenthesized_expression "(uVar21 != sVar17)" ( (binary_expression "uVar21 != sVar17" identifier != identifier) )) (compound_statement "{\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" { (if_statement "if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;" if (parenthesized_expression "((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0))" ( (binary_expression "(*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" (parenthesized_expression "(*(long *)(lVar38 + 0x68) != 0)" ( (binary_expression "*(long *)(lVar38 + 0x68) != 0" (pointer_expression "*(long *)(lVar38 + 0x68)" * (cast_expression "(long *)(lVar38 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" identifier = (call_expression "bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" identifier (argument_list "(param_2,*(long *)(lVar38 + 0x68),sVar17)" ( identifier , (pointer_expression "*(long *)(lVar38 + 0x68)" * (cast_expression "(long *)(lVar38 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0010941b;" goto statement_identifier ;)) (expression_statement "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5)" identifier = (call_expression "dcgettext(0,"warning: failed to set merged notes size",5)" identifier (argument_list "(0,"warning: failed to set merged notes size",5)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" else (compound_statement "{\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" identifier (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal )))) ;) (labeled_statement "LAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" statement_identifier : (if_statement "if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" { (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" identifier (argument_list "(0x11)" ( number_literal ))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,lVar16);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,lVar16)" identifier (argument_list "(0,param_1,lVar38,lVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0010b098:\n                free(local_110);" statement_identifier : (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;)) }))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) (expression_statement "DAT_0012cb10 = 0;" (assignment_expression "DAT_0012cb10 = 0" identifier = number_literal) ;) }))) }))) })) (labeled_statement "LAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" statement_identifier : (for_statement "for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" for ( (assignment_expression "puVar33 = DAT_0012ca98" identifier = identifier) ; (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar33[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar33[1])" identifier (argument_list "(param_1,puVar33[1])" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }" { (expression_statement "uVar12 = puVar33[1];" (assignment_expression "uVar12 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier = (call_expression "dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier (argument_list "(0,"can\'t dump section \'%s\' - it does not exist",5)" ( number_literal , (string_literal ""can\'t dump section \'%s\' - it does not exist"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar13,uVar12)" identifier (argument_list "(0,param_1,0,uVar13,uVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" else (compound_statement "{\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" { (expression_statement "pcVar39 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar39 = "can\'t dump section - it has no contents"" identifier = (string_literal ""can\'t dump section - it has no contents"" " string_content escape_sequence string_content ")) ;) (if_statement "if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" if (parenthesized_expression "((*(byte *)(lVar38 + 0x21) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar38 + 0x21) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar38 + 0x21) & 1)" ( (binary_expression "*(byte *)(lVar38 + 0x21) & 1" (pointer_expression "*(byte *)(lVar38 + 0x21)" * (cast_expression "(byte *)(lVar38 + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x21)" ( (binary_expression "lVar38 + 0x21" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" { (expression_statement "sVar17 = *(size_t *)(lVar38 + 0x38);" (assignment_expression "sVar17 = *(size_t *)(lVar38 + 0x38)" identifier = (pointer_expression "*(size_t *)(lVar38 + 0x38)" * (cast_expression "(size_t *)(lVar38 + 0x38)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" if (parenthesized_expression "(sVar17 != 0)" ( (binary_expression "sVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" { (expression_statement "__s = fopen((char *)puVar33[2],"w");" (assignment_expression "__s = fopen((char *)puVar33[2],"w")" identifier = (call_expression "fopen((char *)puVar33[2],"w")" identifier (argument_list "((char *)puVar33[2],"w")" ( (cast_expression "(char *)puVar33[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[2]" identifier [ number_literal ])) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" if (parenthesized_expression "(__s == (FILE *)0x0)" ( (binary_expression "__s == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }" { (expression_statement "uVar12 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar12 = dcgettext(0,"could not open section dump file",5)" identifier = (call_expression "dcgettext(0,"could not open section dump file",5)" identifier (argument_list "(0,"could not open section dump file",5)" ( number_literal , (string_literal ""could not open section dump file"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(puVar33[2],0,0,uVar12);" (call_expression "FUN_0011c0d0(puVar33[2],0,0,uVar12)" identifier (argument_list "(puVar33[2],0,0,uVar12)" ( (subscript_expression "puVar33[2]" identifier [ number_literal ]) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" else (compound_statement "{\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" { (expression_statement "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);" (assignment_expression "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58)" identifier = (call_expression "bfd_malloc_and_get_section(param_1,lVar38,&local_58)" identifier (argument_list "(param_1,lVar38,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }" { (expression_statement "uVar12 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar12 = dcgettext(0,"could not retrieve section contents",5)" identifier = (call_expression "dcgettext(0,"could not retrieve section contents",5)" identifier (argument_list "(0,"could not retrieve section contents",5)" ( number_literal , (string_literal ""could not retrieve section contents"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" else (compound_statement "{\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" { (expression_statement "sVar18 = fwrite(local_58,1,sVar17,__s);" (assignment_expression "sVar18 = fwrite(local_58,1,sVar17,__s)" identifier = (call_expression "fwrite(local_58,1,sVar17,__s)" identifier (argument_list "(local_58,1,sVar17,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" if (parenthesized_expression "(sVar17 != sVar18)" ( (binary_expression "sVar17 != sVar18" identifier != identifier) )) (compound_statement "{\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" { (expression_statement "piVar22 = __errno_location();" (assignment_expression "piVar22 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar39 = strerror(*piVar22);" (assignment_expression "pcVar39 = strerror(*piVar22)" identifier = (call_expression "strerror(*piVar22)" identifier (argument_list "(*piVar22)" ( (pointer_expression "*piVar22" * identifier) )))) ;) (expression_statement "uVar12 = puVar33[2];" (assignment_expression "uVar12 = puVar33[2]" identifier = (subscript_expression "puVar33[2]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5)" identifier = (call_expression "dcgettext(0,"error writing section contents to %s (error: %s)",5)" identifier (argument_list "(0,"error writing section contents to %s (error: %s)",5)" ( number_literal , (string_literal ""error writing section contents to %s (error: %s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12,pcVar39);" (call_expression "FUN_0011b660(uVar13,uVar12,pcVar39)" identifier (argument_list "(uVar13,uVar12,pcVar39)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "fclose(__s);" (call_expression "fclose(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) }))) (goto_statement "goto LAB_001094a8;" goto statement_identifier ;) })) (expression_statement "pcVar39 = "can\'t dump section - it is empty";" (assignment_expression "pcVar39 = "can\'t dump section - it is empty"" identifier = (string_literal ""can\'t dump section - it is empty"" " string_content escape_sequence string_content ")) ;) })) (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;" statement_identifier : (ERROR "}" }) (expression_statement "local_a8 = DAT_0012ca90;" (assignment_expression "local_a8 = DAT_0012ca90" identifier = identifier) ;)) (if_statement "if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" if (parenthesized_expression "(DAT_0012ca90 != 0)" ( (binary_expression "DAT_0012ca90 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(param_2,".gnu_debuglink")" identifier (argument_list "(param_2,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }" { (expression_statement "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);" (assignment_expression "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" identifier = (call_expression "bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" identifier (argument_list "(param_2,DAT_0012ca90)" ( identifier , identifier )))) ;) (if_statement "if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" { (expression_statement "pcVar39 = "cannot create debug link section `%s\'";" (assignment_expression "pcVar39 = "cannot create debug link section `%s\'"" identifier = (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ")) ;) (expression_statement "lVar38 = DAT_0012ca90;" (assignment_expression "lVar38 = DAT_0012ca90" identifier = identifier) ;) (labeled_statement "LAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" identifier (argument_list "(0,param_2,0,uVar12,lVar38)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" if (parenthesized_expression "(*(int *)(param_2[1] + 8) == 2)" ( (binary_expression "*(int *)(param_2[1] + 8) == 2" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" { (expression_statement "lVar38 = param_2[0x12];" (assignment_expression "lVar38 = param_2[0x12]" identifier = (subscript_expression "param_2[0x12]" identifier [ number_literal ])) ;) (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" identifier = number_literal) ;) (if_statement "if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }" { (labeled_statement "LAB_0010ad5e:\n                uVar29 = 0x1000;" statement_identifier : (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" else (compound_statement "{\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" { (do_statement "do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);" do (compound_statement "{\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                }" { (expression_statement "lVar24 = lVar16;" (assignment_expression "lVar24 = lVar16" identifier = identifier) ;) (if_statement "if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }" if (parenthesized_expression "(((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)))" ( (binary_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" (parenthesized_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0))" ( (binary_expression "(*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)" (parenthesized_expression "(*(ulong *)(lVar38 + 0x28) != 0)" ( (binary_expression "*(ulong *)(lVar38 + 0x28) != 0" (pointer_expression "*(ulong *)(lVar38 + 0x28)" * (cast_expression "(ulong *)(lVar38 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(lVar24 = lVar38, lVar16 != 0)" ( (comma_expression "lVar24 = lVar38, lVar16 != 0" (assignment_expression "lVar24 = lVar38" identifier = identifier) , (binary_expression "lVar16 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" ( (comma_expression "lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (assignment_expression "lVar24 = lVar16" identifier = identifier) , (binary_expression "*(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (pointer_expression "*(ulong *)(lVar16 + 0x28)" * (cast_expression "(ulong *)(lVar16 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) < (pointer_expression "*(ulong *)(lVar38 + 0x28)" * (cast_expression "(ulong *)(lVar38 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                    lVar24 = lVar38;\n                  }" { (expression_statement "lVar24 = lVar38;" (assignment_expression "lVar24 = lVar38" identifier = identifier) ;) })) (expression_statement "lVar38 = *(long *)(lVar38 + 0x10);" (assignment_expression "lVar38 = *(long *)(lVar38 + 0x10)" identifier = (pointer_expression "*(long *)(lVar38 + 0x10)" * (cast_expression "(long *)(lVar38 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x10)" ( (binary_expression "lVar38 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar24;" (assignment_expression "lVar16 = lVar24" identifier = identifier) ;) }) while (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) ;) (if_statement "if (lVar24 == 0) goto LAB_0010ad5e;" if (parenthesized_expression "(lVar24 == 0)" ( (binary_expression "lVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010ad5e;" goto statement_identifier ;)) (expression_statement "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);" (assignment_expression "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" identifier = (binary_expression "*(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" (pointer_expression "*(long *)(lVar24 + 0x38)" * (cast_expression "(long *)(lVar24 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar24 + 0x38)" ( (binary_expression "lVar24 + 0x38" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar24 + 0x28)" * (cast_expression "(long *)(lVar24 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar24 + 0x28)" ( (binary_expression "lVar24 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" if (parenthesized_expression "(uVar21 < 0xfffffffffffff001)" ( (binary_expression "uVar21 < 0xfffffffffffff001" identifier < number_literal) )) (compound_statement "{\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" { (expression_statement "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;" (assignment_expression "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000" identifier = (binary_expression "uVar21 + 0xfff & 0xfffffffffffff000" (binary_expression "uVar21 + 0xfff" identifier + number_literal) & number_literal)) ;) })) }))) (expression_statement "*(ulong *)(local_a8 + 0x30) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x30) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x30)" * (cast_expression "(ulong *)(local_a8 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x30)" ( (binary_expression "local_a8 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(local_a8 + 0x28) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x28) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x28)" * (cast_expression "(ulong *)(local_a8 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x28)" ( (binary_expression "local_a8 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;" (assignment_expression "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" * (cast_expression "(byte *)(local_a8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x24)" ( (binary_expression "local_a8 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" * (cast_expression "(byte *)(local_a8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x24)" ( (binary_expression "local_a8 + 0x24" identifier + number_literal) )))) | number_literal)) ;) })) }) (else_clause "else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" else (compound_statement "{\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" { (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar13 = dcgettext(0,"%s: debuglink section already exists",5);" (assignment_expression "uVar13 = dcgettext(0,"%s: debuglink section already exists",5)" identifier = (call_expression "dcgettext(0,"%s: debuglink section already exists",5)" identifier (argument_list "(0,"%s: debuglink section already exists",5)" ( number_literal , (string_literal ""%s: debuglink section already exists"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012ca90 = 0;" (assignment_expression "DAT_0012ca90 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) }))) })) (expression_statement "uVar28 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar28 = *(uint *)(param_2 + 0x14)" identifier = (pointer_expression "*(uint *)(param_2 + 0x14)" * (cast_expression "(uint *)(param_2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0))" ( (binary_expression "(uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" ( (binary_expression "DAT_0012cad0 == 0 && DAT_0012cac8 == 0" (binary_expression "DAT_0012cad0 == 0" identifier == number_literal) && (binary_expression "DAT_0012cac8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (ulong *)0x0;" (assignment_expression "local_90 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (long *)0x0;" (assignment_expression "local_98 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) }) (else_clause "else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "sVar17 = (ulong)uVar28 * 8;" (assignment_expression "sVar17 = (ulong)uVar28 * 8" identifier = (binary_expression "(ulong)uVar28 * 8" (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "local_98 = (long *)xmalloc(sVar17);" (assignment_expression "local_98 = (long *)xmalloc(sVar17)" identifier = (cast_expression "(long *)xmalloc(sVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17)" identifier (argument_list "(sVar17)" ( identifier ))))) ;) (expression_statement "local_58 = local_98;" (assignment_expression "local_58 = local_98" identifier = identifier) ;) (expression_statement "bfd_map_over_sections(param_2,FUN_001071c0,&local_58);" (call_expression "bfd_map_over_sections(param_2,FUN_001071c0,&local_58)" identifier (argument_list "(param_2,FUN_001071c0,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "qsort(local_98,(ulong)uVar28,8,FUN_001071d0);" (call_expression "qsort(local_98,(ulong)uVar28,8,FUN_001071d0)" identifier (argument_list "(local_98,(ulong)uVar28,8,FUN_001071d0)" ( identifier , (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "local_90 = (ulong *)xmalloc(sVar17);" (assignment_expression "local_90 = (ulong *)xmalloc(sVar17)" identifier = (cast_expression "(ulong *)xmalloc(sVar17)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17)" identifier (argument_list "(sVar17)" ( identifier ))))) ;) (expression_statement "memset(local_90,0,sVar17);" (call_expression "memset(local_90,0,sVar17)" identifier (argument_list "(local_90,0,sVar17)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" if (parenthesized_expression "((DAT_0012cad0 != 0) && (uVar28 != 1))" ( (binary_expression "(DAT_0012cad0 != 0) && (uVar28 != 1)" (parenthesized_expression "(DAT_0012cad0 != 0)" ( (binary_expression "DAT_0012cad0 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar28 != 1)" ( (binary_expression "uVar28 != 1" identifier != number_literal) ))) )) (compound_statement "{\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" { (expression_statement "plVar15 = local_98;" (assignment_expression "plVar15 = local_98" identifier = identifier) ;) (expression_statement "puVar32 = local_90;" (assignment_expression "puVar32 = local_90" identifier = identifier) ;) (do_statement "do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);" do (compound_statement "{\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            }" { (expression_statement "lVar38 = *plVar15;" (assignment_expression "lVar38 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) ;) (if_statement "if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" if (parenthesized_expression "((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102)" ( (binary_expression "(*(uint *)(lVar38 + 0x20) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(lVar38 + 0x20) & 0x102)" ( (binary_expression "*(uint *)(lVar38 + 0x20) & 0x102" (pointer_expression "*(uint *)(lVar38 + 0x20)" * (cast_expression "(uint *)(lVar38 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x20)" ( (binary_expression "lVar38 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" { (expression_statement "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" identifier = (binary_expression "*(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))))) ;) (if_statement "if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" if (parenthesized_expression "(uVar29 < *(ulong *)(plVar15[1] + 0x30))" ( (binary_expression "uVar29 < *(ulong *)(plVar15[1] + 0x30)" identifier < (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" * (cast_expression "(ulong *)(plVar15[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15[1] + 0x30)" ( (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" { (expression_statement "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;" (assignment_expression "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29" identifier = (binary_expression "*(ulong *)(plVar15[1] + 0x30) - uVar29" (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" * (cast_expression "(ulong *)(plVar15[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15[1] + 0x30)" ( (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + number_literal) )))) - identifier)) ;) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" identifier (argument_list "(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" ( identifier , identifier , (binary_expression "*(long *)(lVar38 + 0x38) + uVar29" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" { (expression_statement "uVar12 = dcgettext(0,"Can\'t fill gap after section",5);" (assignment_expression "uVar12 = dcgettext(0,"Can\'t fill gap after section",5)" identifier = (call_expression "dcgettext(0,"Can\'t fill gap after section",5)" identifier (argument_list "(0,"Can\'t fill gap after section",5)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,*plVar15,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,*plVar15,uVar12)" identifier (argument_list "(0,param_2,*plVar15,uVar12)" ( number_literal , identifier , (pointer_expression "*plVar15" * identifier) , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "*puVar32 = uVar29;" (assignment_expression "*puVar32 = uVar29" (pointer_expression "*puVar32" * identifier) = identifier) ;) (if_statement "if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }" if (parenthesized_expression "(uVar21 < uVar29)" ( (binary_expression "uVar21 < uVar29" identifier < identifier) )) (compound_statement "{\n                    uVar21 = uVar29;\n                  }" { (expression_statement "uVar21 = uVar29;" (assignment_expression "uVar21 = uVar29" identifier = identifier) ;) })) })) })) (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" identifier = (binary_expression "plVar15 + 1" identifier + number_literal)) ;) (expression_statement "puVar32 = puVar32 + 1;" (assignment_expression "puVar32 = puVar32 + 1" identifier = (binary_expression "puVar32 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) }) while (parenthesized_expression "(local_98 + (ulong)(uVar28 - 2) + 1 != plVar15)" ( (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1 != plVar15" (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1" (binary_expression "local_98 + (ulong)(uVar28 - 2)" identifier + (call_expression "(ulong)(uVar28 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar28 - 2)" ( (binary_expression "uVar28 - 2" identifier - number_literal) )))) + number_literal) != identifier) )) ;) })) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) (if_statement "if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(DAT_0012cac8 != 0)" ( (binary_expression "DAT_0012cac8 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" { (expression_statement "lVar38 = local_98[uVar28 - 1];" (assignment_expression "lVar38 = local_98[uVar28 - 1]" identifier = (subscript_expression "local_98[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ])) ;) (expression_statement "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" identifier = (binary_expression "*(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))))) ;) (if_statement "if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar29 < DAT_0012cac0)" ( (binary_expression "uVar29 < DAT_0012cac0" identifier < identifier) )) (compound_statement "{\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" { (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" identifier (argument_list "(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" ( identifier , identifier , (binary_expression "DAT_0012cac0 - *(long *)(lVar38 + 0x30)" identifier - (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }" { (expression_statement "uVar12 = dcgettext(0,"can\'t add padding",5);" (assignment_expression "uVar12 = dcgettext(0,"can\'t add padding",5)" identifier = (call_expression "dcgettext(0,"can\'t add padding",5)" identifier (argument_list "(0,"can\'t add padding",5)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);" (call_expression "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12)" identifier (argument_list "(0,param_2,local_98[uVar28 - 1],uVar12)" ( number_literal , identifier , (subscript_expression "local_98[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ]) , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" else (compound_statement "{\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" { (expression_statement "uVar21 = DAT_0012cac0 - uVar29;" (assignment_expression "uVar21 = DAT_0012cac0 - uVar29" identifier = (binary_expression "DAT_0012cac0 - uVar29" identifier - identifier)) ;) (expression_statement "local_90[uVar28 - 1] = uVar21;" (assignment_expression "local_90[uVar28 - 1] = uVar21" (subscript_expression "local_90[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ]) = identifier) ;) (if_statement "if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }" if (parenthesized_expression "(uVar21 <= local_a0)" ( (binary_expression "uVar21 <= local_a0" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = local_a0;\n                }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" if (parenthesized_expression "(DAT_0012ca88 != 0)" ( (binary_expression "DAT_0012ca88 != 0" identifier != number_literal) )) (compound_statement "{\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" { (expression_statement "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);" (assignment_expression "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" identifier = (call_expression "FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" identifier (argument_list "(param_1,DAT_0012cb40,local_100,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" if (parenthesized_expression "(DAT_0012cb0c - 2U < 6)" ( (binary_expression "DAT_0012cb0c - 2U < 6" (binary_expression "DAT_0012cb0c - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }" { (labeled_statement "LAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" statement_identifier : (if_statement "if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" if (parenthesized_expression "(DAT_0012cb0c != 7)" ( (binary_expression "DAT_0012cb0c != 7" identifier != number_literal) )) (compound_statement "{\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" { (labeled_statement "LAB_00109b5f:\n            bfd_set_error(0);" statement_identifier : (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);" (call_expression "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40)" identifier (argument_list "(param_1,FUN_00108e30,DAT_0012cb40)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = bfd_get_error();" (assignment_expression "iVar7 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);" (assignment_expression "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" identifier = (cast_expression "(long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" identifier (argument_list "((local_100 + 1 + (long)DAT_0012ca18) * 8)" ( (binary_expression "(local_100 + 1 + (long)DAT_0012ca18) * 8" (parenthesized_expression "(local_100 + 1 + (long)DAT_0012ca18)" ( (binary_expression "local_100 + 1 + (long)DAT_0012ca18" (binary_expression "local_100 + 1" identifier + number_literal) + (cast_expression "(long)DAT_0012ca18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) * number_literal) ))))) ;) (expression_statement "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;" (assignment_expression "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42" (field_expression "local_b8._0_4_" identifier . field_identifier) = (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "DAT_0012cb38 = plVar15;" (assignment_expression "DAT_0012cb38 = plVar15" identifier = identifier) ;) (if_statement "if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" { (expression_statement "plVar34 = DAT_0012cb40 + local_100;" (assignment_expression "plVar34 = DAT_0012cb40 + local_100" identifier = (binary_expression "DAT_0012cb40 + local_100" identifier + identifier)) ;) (expression_statement "local_110 = (size_t *)DAT_0012cb40;" (assignment_expression "local_110 = (size_t *)DAT_0012cb40" identifier = (cast_expression "(size_t *)DAT_0012cb40" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);" do (compound_statement "{\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            }" { (expression_statement "iVar7 = DAT_0012ca18;" (assignment_expression "iVar7 = DAT_0012ca18" identifier = identifier) ;) (expression_statement "plVar2 = (long *)*local_110;" (assignment_expression "plVar2 = (long *)*local_110" identifier = (cast_expression "(long *)*local_110" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_110" * identifier))) ;) (expression_statement "uVar28 = *(uint *)(plVar2 + 3);" (assignment_expression "uVar28 = *(uint *)(plVar2 + 3)" identifier = (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) ))))) ;) (expression_statement "plVar19 = (long *)plVar2[1];" (assignment_expression "plVar19 = (long *)plVar2[1]" identifier = (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar38 = plVar2[4];" (assignment_expression "lVar38 = plVar2[4]" identifier = (subscript_expression "plVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0))" ( (binary_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" ( (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" ( (binary_expression "DAT_0012ca20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_0012ca18)" ( (binary_expression "0 < DAT_0012ca18" number_literal < identifier) ))) )) && (parenthesized_expression "(pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" ( (comma_expression "pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0" (assignment_expression "pcVar39 = (char *)DAT_0012ca20[5]" identifier = (cast_expression "(char *)DAT_0012ca20[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0012ca20[5]" identifier [ number_literal ]))) , (binary_expression "pcVar39 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "plVar46 = DAT_0012ca20;" (assignment_expression "plVar46 = DAT_0012ca20" identifier = identifier) ;) (while_statement "while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" while (parenthesized_expression "(iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0)" ( (comma_expression "iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0" (assignment_expression "iVar11 = strcmp(pcVar39,(char *)plVar19)" identifier = (call_expression "strcmp(pcVar39,(char *)plVar19)" identifier (argument_list "(pcVar39,(char *)plVar19)" ( identifier , (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) )) (compound_statement "{\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "plVar46 = (long *)*plVar46;" (assignment_expression "plVar46 = (long *)*plVar46" identifier = (cast_expression "(long *)*plVar46" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar46" * identifier))) ;) (if_statement "if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;" if (parenthesized_expression "((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))" ( (binary_expression "(iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" (parenthesized_expression "(iVar10 == iVar7)" ( (binary_expression "iVar10 == iVar7" identifier == identifier) )) || (parenthesized_expression "(pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" ( (comma_expression "pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0" (assignment_expression "pcVar39 = (char *)plVar46[5]" identifier = (cast_expression "(char *)plVar46[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar46[5]" identifier [ number_literal ]))) , (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109cb0;" goto statement_identifier ;)) })) (expression_statement "free(pcVar39);" (call_expression "free(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier ))) ;) (expression_statement "plVar46[5] = (long)"";" (assignment_expression "plVar46[5] = (long)""" (subscript_expression "plVar46[5]" identifier [ number_literal ]) = (cast_expression "(long)""" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (string_literal """" " "))) ;) (expression_statement "lVar16 = FUN_00108200(plVar46,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar46,param_2)" identifier = (call_expression "FUN_00108200(plVar46,param_2)" identifier (argument_list "(plVar46,param_2)" ( identifier , identifier )))) ;) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);" statement_identifier : (expression_statement "lVar16 = htab_elements(DAT_0012ca30);" (assignment_expression "lVar16 = htab_elements(DAT_0012ca30)" identifier = (call_expression "htab_elements(DAT_0012ca30)" identifier (argument_list "(DAT_0012ca30)" ( identifier )))) ;)) (expression_statement "plVar46 = plVar19;" (assignment_expression "plVar46 = plVar19" identifier = identifier) ;) (if_statement "if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" if (parenthesized_expression "((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0))" ( (binary_expression "(lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0)" ( (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" identifier = identifier) ;) (expression_statement "lVar16 = htab_find(DAT_0012ca30,&local_58);" (assignment_expression "lVar16 = htab_find(DAT_0012ca30,&local_58)" identifier = (call_expression "htab_find(DAT_0012ca30,&local_58)" identifier (argument_list "(DAT_0012ca30,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0))" ( (binary_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" (parenthesized_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46))" ( (binary_expression "(lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" ( (comma_expression "plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46" (assignment_expression "plVar46 = *(long **)(lVar16 + 8)" identifier = (pointer_expression "*(long **)(lVar16 + 8)" * (cast_expression "(long **)(lVar16 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) , (binary_expression "plVar19 == plVar46" identifier == identifier)) ))) )) && (parenthesized_expression "(puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" ( (comma_expression "puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0" (assignment_expression "puVar33 = DAT_0012cb48" identifier = identifier) , (binary_expression "(uVar28 & 0x100) != 0" (parenthesized_expression "(uVar28 & 0x100)" ( (binary_expression "uVar28 & 0x100" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" { (for_statement "for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" for ( ; (comma_expression "plVar46 = plVar19, puVar33 != (undefined8 *)0x0" (assignment_expression "plVar46 = plVar19" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)puVar33[3]" identifier = (cast_expression "(undefined8 *)puVar33[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[3]" identifier [ number_literal ]))) ) (compound_statement "{\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" { (expression_statement "iVar7 = strcmp((char *)*puVar33,(char *)plVar19);" (assignment_expression "iVar7 = strcmp((char *)*puVar33,(char *)plVar19)" identifier = (call_expression "strcmp((char *)*puVar33,(char *)plVar19)" identifier (argument_list "((char *)*puVar33,(char *)plVar19)" ( (cast_expression "(char *)*puVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) , (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" { (expression_statement "plVar46 = (long *)puVar33[1];" (assignment_expression "plVar46 = (long *)puVar33[1]" identifier = (cast_expression "(long *)puVar33[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[1]" identifier [ number_literal ]))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" identifier = identifier) ;) (expression_statement "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);" (assignment_expression "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1c" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" if (parenthesized_expression "((char)*plVar46 == cVar42)" ( (binary_expression "(char)*plVar46 == cVar42" (cast_expression "(char)*plVar46" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*plVar46" * identifier)) == identifier) )) (compound_statement "{\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }" { (if_statement "if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" if (parenthesized_expression "(DAT_0012ca7c == 0)" ( (binary_expression "DAT_0012ca7c == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" { (if_statement "if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;" if (parenthesized_expression "((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))))" ( (binary_expression "(DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" (parenthesized_expression "(DAT_0012ca78 == 0)" ( (binary_expression "DAT_0012ca78 == 0" identifier == number_literal) )) || (parenthesized_expression "((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" ( (parenthesized_expression "(((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" ( (binary_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678))" ( (binary_expression "(uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)" (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) == number_literal) && (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;)) (labeled_statement "LAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);" statement_identifier : (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" identifier = (cast_expression "(long *)((long)plVar46 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar46 + 1)" ( (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;)) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;" if (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00109f88;" goto statement_identifier ;)) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" if (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" { (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" identifier = (cast_expression "(long *)((long)plVar46 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar46 + 1)" ( (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (goto_statement "goto LAB_00109fa6;" goto statement_identifier ;) })) (expression_statement "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar46" * (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }) (else_clause "else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" else (compound_statement "{\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" { (if_statement "if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" if (parenthesized_expression "(((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0'))" ( (binary_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')" (parenthesized_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0'))" ( (binary_expression "(DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')" (parenthesized_expression "(DAT_0012ca7c == 0)" ( (binary_expression "DAT_0012ca7c == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar42 != '\0')" ( (binary_expression "cVar42 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }" { (labeled_statement "LAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;" statement_identifier : (if_statement "if (pcVar39 == (char *)0x0) goto LAB_00109da6;" if (parenthesized_expression "(pcVar39 == (char *)0x0)" ( (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00109da6;" goto statement_identifier ;))) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" identifier = (call_expression "strlen((char *)plVar46)" identifier (argument_list "((char *)plVar46)" ( (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18)" identifier = (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 2 + sVar18)" identifier (argument_list "(sVar17 + 2 + sVar18)" ( (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" identifier = identifier) ;) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" identifier = identifier) ;) }) (else_clause "else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" else (compound_statement "{\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" { (labeled_statement "LAB_00109fa6:\n                  sVar17 = strlen(pcVar39);" statement_identifier : (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;)) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" identifier = (call_expression "strlen((char *)plVar46)" identifier (argument_list "((char *)plVar46)" ( (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18)" identifier = (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 2 + sVar18)" identifier (argument_list "(sVar17 + 2 + sVar18)" ( (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "plVar19 = (long *)((long)plVar20 + 1);" (assignment_expression "plVar19 = (long *)((long)plVar20 + 1)" identifier = (cast_expression "(long *)((long)plVar20 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + 1)" ( (binary_expression "(long)plVar20 + 1" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar20" * (cast_expression "(char *)plVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" identifier = identifier) ;) }))) (expression_statement "plVar46 = plVar20;" (assignment_expression "plVar46 = plVar20" identifier = identifier) ;) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" identifier = identifier) ;) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" if (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" { (expression_statement "strcpy((char *)plVar19,DAT_0012ca08);" (call_expression "strcpy((char *)plVar19,DAT_0012ca08)" identifier (argument_list "((char *)plVar19,DAT_0012ca08)" ( (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;) (expression_statement "plVar19 = (long *)((long)plVar19 + sVar17);" (assignment_expression "plVar19 = (long *)((long)plVar19 + sVar17)" identifier = (cast_expression "(long *)((long)plVar19 + sVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar19 + sVar17)" ( (binary_expression "(long)plVar19 + sVar17" (cast_expression "(long)plVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) })) (expression_statement "strcpy((char *)plVar19,(char *)__src);" (call_expression "strcpy((char *)plVar19,(char *)__src)" identifier (argument_list "((char *)plVar19,(char *)__src)" ( (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)__src" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (labeled_statement "LAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;" statement_identifier : (if_statement "if (DAT_0012cb0c == 7) goto LAB_00109e38;" if (parenthesized_expression "(DAT_0012cb0c == 7)" ( (binary_expression "DAT_0012cb0c == 7" identifier == number_literal) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;))) (if_statement "if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" if (parenthesized_expression "((uVar28 & 0x20) == 0)" ( (binary_expression "(uVar28 & 0x20) == 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }" { (if_statement "if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" if (parenthesized_expression "(((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0))" ( (binary_expression "((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" (parenthesized_expression "((uVar28 & 0x100) == 0)" ( (binary_expression "(uVar28 & 0x100) == 0" (parenthesized_expression "(uVar28 & 0x100)" ( (binary_expression "uVar28 & 0x100" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" ( (binary_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20)" ( (binary_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20" (pointer_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" * (cast_expression "(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(plVar2[4] + 0x100) + 0x18)" ( (binary_expression "**(long **)(plVar2[4] + 0x100) + 0x18" (pointer_expression "**(long **)(plVar2[4] + 0x100)" * (pointer_expression "*(long **)(plVar2[4] + 0x100)" * (cast_expression "(long **)(plVar2[4] + 0x100)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar2[4] + 0x100)" ( (binary_expression "plVar2[4] + 0x100" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }" { (if_statement "if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49))" ( (binary_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" (parenthesized_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))))" ( (binary_expression "((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" (parenthesized_expression "((uint)local_b8 == 0)" ( (binary_expression "(uint)local_b8 == 0" (cast_expression "(uint)local_b8" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) && (parenthesized_expression "(((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" ( (parenthesized_expression "((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))" ( (binary_expression "(uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" ( (comma_expression "iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49" (assignment_expression "iVar7 = bfd_decode_symclass(plVar2)" identifier = (call_expression "bfd_decode_symclass(plVar2)" identifier (argument_list "(plVar2)" ( identifier )))) , (binary_expression "iVar7 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }" { (labeled_statement "LAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" statement_identifier : (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;)) (if_statement "if (iVar7 == 0) goto LAB_00109e20;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e20;" goto statement_identifier ;)) }) (else_clause "else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" else (if_statement "if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" ( (binary_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678))" ( (binary_expression "((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)" (parenthesized_expression "((uVar28 & 0x82) == 0)" ( (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }" { (if_statement "if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" if (parenthesized_expression "((uVar28 & 4) == 0)" ( (binary_expression "(uVar28 & 4) == 0" (parenthesized_expression "(uVar28 & 4)" ( (binary_expression "uVar28 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" { (if_statement "if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" if (parenthesized_expression "(((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0))" ( (binary_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)" (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0))" ( (binary_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2)" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) != 2" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" ( (comma_expression "lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0" (assignment_expression "lVar16 = *(long *)(plVar2[4] + 0xe0)" identifier = (pointer_expression "*(long *)(plVar2[4] + 0xe0)" * (cast_expression "(long *)(plVar2[4] + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0xe0)" ( (binary_expression "plVar2[4] + 0xe0" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) ))))) , (binary_expression "lVar16 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(*(long *)(lVar16 + 0x40) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x40) == 0" (pointer_expression "*(long *)(lVar16 + 0x40)" * (cast_expression "(long *)(lVar16 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x40)" ( (binary_expression "lVar16 + 0x40" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" { (if_statement "if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;" if (parenthesized_expression "((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2))" ( (binary_expression "(DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)" (parenthesized_expression "(DAT_0012cb0c == 3)" ( (binary_expression "DAT_0012cb0c == 3" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cb08 == 2)" ( (binary_expression "DAT_0012cb08 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;)) (if_statement "if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" if (parenthesized_expression "(DAT_0012cb08 == 1)" ( (binary_expression "DAT_0012cb08 == 1" identifier == number_literal) )) (compound_statement "{\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" { (expression_statement "iVar7 = bfd_is_local_label(param_1,plVar2);" (assignment_expression "iVar7 = bfd_is_local_label(param_1,plVar2)" identifier = (call_expression "bfd_is_local_label(param_1,plVar2)" identifier (argument_list "(param_1,plVar2)" ( identifier , identifier )))) ;) (goto_statement "goto joined_r0x0010aafb;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;) })) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" identifier = identifier) ;) (if_statement "if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" if (parenthesized_expression "(1 < DAT_0012cb0c - 2U)" ( (binary_expression "1 < DAT_0012cb0c - 2U" number_literal < (binary_expression "DAT_0012cb0c - 2U" identifier - number_literal)) )) (compound_statement "{\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" { (labeled_statement "joined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;" statement_identifier : (if_statement "if (iVar7 == 0) goto LAB_0010a060;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;))) })) }) (else_clause "else if (DAT_0012cb0c != 3) goto LAB_0010a060;" else (if_statement "if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "(DAT_0012cb0c != 3)" ( (binary_expression "DAT_0012cb0c != 3" identifier != number_literal) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;)))))) }) (else_clause "else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" else (compound_statement "{\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" { (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" { (expression_statement "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" identifier = (call_expression "dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" identifier (argument_list "(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" identifier (argument_list "(uVar12,plVar46)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" statement_identifier : (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca60)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca60)" identifier (argument_list "(plVar46,DAT_0012ca60)" ( identifier , identifier )))) ;)) (if_statement "if (iVar7 == 0) goto LAB_00109e61;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" statement_identifier : (if_statement "if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" if (parenthesized_expression "(((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0))" ( (binary_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" (parenthesized_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0))" ( (binary_expression "(DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)" (parenthesized_expression "(DAT_0012ca10 != 0)" ( (binary_expression "DAT_0012ca10 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar28 & 0x4000) != 0)" ( (binary_expression "(uVar28 & 0x4000) != 0" (parenthesized_expression "(uVar28 & 0x4000)" ( (binary_expression "uVar28 & 0x4000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca58)" identifier (argument_list "(plVar46,DAT_0012ca58)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;))) }) (else_clause "else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" else (compound_statement "{\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" { (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" { (expression_statement "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" identifier = (call_expression "dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" identifier (argument_list "(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" identifier (argument_list "(uVar12,plVar46)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);" statement_identifier : (expression_statement "iVar7 = FUN_001082f0(plVar2[4]);" (assignment_expression "iVar7 = FUN_001082f0(plVar2[4])" identifier = (call_expression "FUN_001082f0(plVar2[4])" identifier (argument_list "(plVar2[4])" ( (subscript_expression "plVar2[4]" identifier [ number_literal ]) )))) ;)) (if_statement "if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" { (if_statement "if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" if (parenthesized_expression "(((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )))" ( (binary_expression "((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" (parenthesized_expression "((uVar28 & 2) != 0)" ( (binary_expression "(uVar28 & 2) != 0" (parenthesized_expression "(uVar28 & 2)" ( (binary_expression "uVar28 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" ( (parenthesized_expression "(DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )" ( (binary_expression "DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" (binary_expression "DAT_0012ca14 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca38)" identifier (argument_list "(plVar46,DAT_0012ca38)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" if (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) )) (compound_statement "{\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" { (if_statement "if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" if (parenthesized_expression "(((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))))" ( (binary_expression "((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" (parenthesized_expression "((uVar28 & 0x82) != 0)" ( (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" ( (parenthesized_expression "((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))" ( (binary_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))))" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca50)" identifier (argument_list "(plVar46,DAT_0012ca50)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" ( (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" identifier = (call_expression "htab_elements(DAT_0012ca40)" identifier (argument_list "(DAT_0012ca40)" ( identifier )))) , (binary_expression "lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (binary_expression "lVar38 != 0" identifier != number_literal) && (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca40)" identifier (argument_list "(plVar46,DAT_0012ca40)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) )))) )) || (parenthesized_expression "((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" ( (parenthesized_expression "(DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))" ( (binary_expression "DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" (binary_expression "DAT_0012ca70 != 0" identifier != number_literal) && (parenthesized_expression "((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" ( (parenthesized_expression "(((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))" ( (binary_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" (parenthesized_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0))" ( (binary_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)" (parenthesized_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5))" ( (comma_expression "lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (assignment_expression "lVar38 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) , (binary_expression "lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (binary_expression "lVar38 != 0" identifier != number_literal) && (parenthesized_expression "(*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" ( (binary_expression "*(int *)(*(long *)(lVar38 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar38 + 8) + 8)" * (cast_expression "(int *)(*(long *)(lVar38 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar38 + 8) + 8)" ( (binary_expression "*(long *)(lVar38 + 8) + 8" (pointer_expression "*(long *)(lVar38 + 8)" * (cast_expression "(long *)(lVar38 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 8)" ( (binary_expression "lVar38 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )))) )) && (parenthesized_expression "(*(long *)(lVar38 + 0xf8) != 0)" ( (binary_expression "*(long *)(lVar38 + 0xf8) != 0" (pointer_expression "*(long *)(lVar38 + 0xf8)" * (cast_expression "(long *)(lVar38 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0xf8)" ( (binary_expression "lVar38 + 0xf8" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2" (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1" (parenthesized_expression "(*(byte *)((long)plVar2 + 0x49) & 3)" ( (binary_expression "*(byte *)((long)plVar2 + 0x49) & 3" (pointer_expression "*(byte *)((long)plVar2 + 0x49)" * (cast_expression "(byte *)((long)plVar2 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x49)" ( (binary_expression "(long)plVar2 + 0x49" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d | 1" (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" if (parenthesized_expression "(((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0))" ( (binary_expression "((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" (parenthesized_expression "((uVar28 & 1) != 0)" ( (binary_expression "(uVar28 & 1) != 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca48)" identifier (argument_list "(plVar46,DAT_0012ca48)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe | 2" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "plVar15[local_100] = (long)plVar2;" (assignment_expression "plVar15[local_100] = (long)plVar2" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_110 = local_110 + 1;" (assignment_expression "local_110 = local_110 + 1" identifier = (binary_expression "local_110 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((size_t *)plVar34 != local_110)" ( (binary_expression "(size_t *)plVar34 != local_110" (cast_expression "(size_t *)plVar34" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (if_statement "if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" if (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" ( (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" ( (binary_expression "DAT_0012ca20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_0012ca18)" ( (binary_expression "0 < DAT_0012ca18" number_literal < identifier) ))) )) (compound_statement "{\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" { (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" identifier = number_literal) ;) (expression_statement "plVar34 = DAT_0012ca20;" (assignment_expression "plVar34 = DAT_0012ca20" identifier = identifier) ;) (do_statement "do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);" do (compound_statement "{\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            }" { (expression_statement "pcVar39 = (char *)plVar34[5];" (assignment_expression "pcVar39 = (char *)plVar34[5]" identifier = (cast_expression "(char *)plVar34[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar34[5]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }" if (parenthesized_expression "(pcVar39 == (char *)0x0)" ( (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "lVar16 = FUN_00108200(plVar34,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar34,param_2)" identifier = (call_expression "FUN_00108200(plVar34,param_2)" identifier (argument_list "(plVar34,param_2)" ( identifier , identifier )))) ;) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }" else (if_statement "if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }" if (parenthesized_expression "(*pcVar39 != '\0')" ( (binary_expression "*pcVar39 != '\0'" (pointer_expression "*pcVar39" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011b5c0(uVar12,pcVar39);\n              }" { (expression_statement "uVar12 = dcgettext(0,"\'before=%s\' not found",5);" (assignment_expression "uVar12 = dcgettext(0,"\'before=%s\' not found",5)" identifier = (call_expression "dcgettext(0,"\'before=%s\' not found",5)" identifier (argument_list "(0,"\'before=%s\' not found",5)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_0011b5c0(uVar12,pcVar39);" (call_expression "FUN_0011b5c0(uVar12,pcVar39)" identifier (argument_list "(uVar12,pcVar39)" ( identifier , identifier ))) ;) })))) (expression_statement "lVar38 = lVar38 + 1;" (assignment_expression "lVar38 = lVar38 + 1" identifier = (binary_expression "lVar38 + 1" identifier + number_literal)) ;) (expression_statement "plVar34 = (long *)*plVar34;" (assignment_expression "plVar34 = (long *)*plVar34" identifier = (cast_expression "(long *)*plVar34" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar34" * identifier))) ;) }) while (parenthesized_expression "(lVar38 < DAT_0012ca18)" ( (binary_expression "lVar38 < DAT_0012ca18" identifier < identifier) )) ;) })) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" identifier = identifier) ;) (expression_statement "plVar15[local_100] = 0;" (assignment_expression "plVar15[local_100] = 0" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = number_literal) ;) (expression_statement "local_100 = local_100 & 0xffffffff;" (assignment_expression "local_100 = local_100 & 0xffffffff" identifier = (binary_expression "local_100 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" if (parenthesized_expression "((iVar7 != 0) && (local_b0 != 0))" ( (binary_expression "(iVar7 != 0) && (local_b0 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" { (expression_statement "iVar7 = *(int *)((undefined8 *)param_2[1] + 1);" (assignment_expression "iVar7 = *(int *)((undefined8 *)param_2[1] + 1)" identifier = (pointer_expression "*(int *)((undefined8 *)param_2[1] + 1)" * (cast_expression "(int *)((undefined8 *)param_2[1] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)param_2[1] + 1)" ( (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "((iVar7 != 2) && (iVar7 != 5))" ( (binary_expression "(iVar7 != 2) && (iVar7 != 5)" (parenthesized_expression "(iVar7 != 2)" ( (binary_expression "iVar7 != 2" identifier != number_literal) )) && (parenthesized_expression "(iVar7 != 5)" ( (binary_expression "iVar7 != 5" identifier != number_literal) ))) )) (compound_statement "{\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "uVar12 = *(undefined8 *)param_2[1];" (assignment_expression "uVar12 = *(undefined8 *)param_2[1]" identifier = (pointer_expression "*(undefined8 *)param_2[1]" * (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5)" identifier = (call_expression "dcgettext(0,"don\'t know how to write debugging information for %s",5)" identifier (argument_list "(0,"don\'t know how to write debugging information for %s",5)" ( number_literal , (string_literal ""don\'t know how to write debugging information for %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar13,uVar12)" identifier (argument_list "(0,param_2,0,uVar13,uVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);" (assignment_expression "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" identifier = (call_expression "FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" identifier (argument_list "(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) , identifier , (pointer_expression "&local_80" & identifier) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(param_2,".stab",0x2108)" identifier (argument_list "(param_2,".stab",0x2108)" ( identifier , (string_literal "".stab"" " string_content ") , number_literal )))) ;) (expression_statement "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(param_2,".stabstr",0x2108)" identifier (argument_list "(param_2,".stabstr",0x2108)" ( identifier , (string_literal "".stabstr"" " string_content ") , number_literal )))) ;) (if_statement "if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0))" ( (binary_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" (parenthesized_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0))" ( (binary_expression "((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" (parenthesized_expression "((lVar38 == 0) || (lVar16 == 0))" ( (binary_expression "(lVar38 == 0) || (lVar16 == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0])" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,local_78[0])" identifier (argument_list "(param_2,lVar38,local_78[0])" ( identifier , identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58)" identifier = (call_expression "bfd_set_section_size(param_2,lVar16,local_58)" identifier (argument_list "(param_2,lVar16,local_58)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "pcVar39 = "can\'t create debugging section";" (assignment_expression "pcVar39 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) (labeled_statement "LAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" identifier (argument_list "(0,param_2,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(lVar38 + 0x70) = 2;" (assignment_expression "*(undefined4 *)(lVar38 + 0x70) = 2" (pointer_expression "*(undefined4 *)(lVar38 + 0x70)" * (cast_expression "(undefined4 *)(lVar38 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x70)" ( (binary_expression "lVar38 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar16 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(lVar16 + 0x70) = 0" (pointer_expression "*(undefined4 *)(lVar16 + 0x70)" * (cast_expression "(undefined4 *)(lVar16 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x70)" ( (binary_expression "lVar16 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" identifier (argument_list "(param_2,lVar38,local_88,0,local_78[0])" ( identifier , identifier , identifier , number_literal , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" if (parenthesized_expression "((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" identifier (argument_list "(param_2,lVar16,local_80,0,local_58)" ( identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" { (expression_statement "pcVar39 = "can\'t set debugging section contents";" (assignment_expression "pcVar39 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010a991;" goto statement_identifier ;) })) })) }) (else_clause "else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" else (compound_statement "{\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" { (if_statement "if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;" if (parenthesized_expression "(DAT_0012ca70 != 0 || DAT_0012cb08 != 0)" ( (binary_expression "DAT_0012ca70 != 0 || DAT_0012cb08 != 0" (binary_expression "DAT_0012ca70 != 0" identifier != number_literal) || (binary_expression "DAT_0012cb08 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00109b5f;" goto statement_identifier ;)) (expression_statement "lVar38 = htab_elements(DAT_0012ca68);" (assignment_expression "lVar38 = htab_elements(DAT_0012ca68)" identifier = (call_expression "htab_elements(DAT_0012ca68)" identifier (argument_list "(DAT_0012ca68)" ( identifier )))) ;) (if_statement "if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;" if (parenthesized_expression "((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))))" ( (binary_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" (parenthesized_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0))" ( (binary_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" (parenthesized_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))))" ( (binary_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" (parenthesized_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0))" ( (binary_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" (parenthesized_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0))" ( (binary_expression "(lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca58)" identifier = (call_expression "htab_elements(DAT_0012ca58)" identifier (argument_list "(DAT_0012ca58)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca50)" identifier = (call_expression "htab_elements(DAT_0012ca50)" identifier (argument_list "(DAT_0012ca50)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" ( (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca48)" identifier = (call_expression "htab_elements(DAT_0012ca48)" identifier (argument_list "(DAT_0012ca48)" ( identifier )))) , (binary_expression "lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (binary_expression "lVar38 != 0" identifier != number_literal) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" identifier = (call_expression "htab_elements(DAT_0012ca40)" identifier (argument_list "(DAT_0012ca40)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca38)" identifier = (call_expression "htab_elements(DAT_0012ca38)" identifier (argument_list "(DAT_0012ca38)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" ( (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))" ( (binary_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca30)" identifier = (call_expression "htab_elements(DAT_0012ca30)" identifier (argument_list "(DAT_0012ca30)" ( identifier )))) , (binary_expression "lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (binary_expression "lVar38 != 0" identifier != number_literal) || (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) || (parenthesized_expression "((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" ( (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))" ( (binary_expression "DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" ( (binary_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0" (parenthesized_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0)" ( (binary_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0" (parenthesized_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0)" ( (binary_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0" (parenthesized_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0)" ( (binary_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0" (parenthesized_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0)" ( (binary_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0" (parenthesized_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0)" ( (binary_expression "DAT_0012cafc != 0 || DAT_0012caf8 != 0" (binary_expression "DAT_0012cafc != 0" identifier != number_literal) || (binary_expression "DAT_0012caf8 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca88 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca7c != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca78 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca14 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca18 != 0" identifier != number_literal)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00109b5a;" goto statement_identifier ;)) }))) (expression_statement "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);" (call_expression "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff)" identifier (argument_list "(param_2,DAT_0012cb38,local_100 & 0xffffffff)" ( identifier , identifier , (binary_expression "local_100 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00108b90,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108b90,param_2)" identifier (argument_list "(param_1,FUN_00108b90,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00108850,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108850,param_2)" identifier (argument_list "(param_1,FUN_00108850,param_2)" ( identifier , identifier , identifier ))) ;) (for_statement "for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" for ( (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ; (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" { (expression_statement "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" identifier = (call_expression "bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" identifier (argument_list "(param_2,puVar33[5],puVar33[4],0,puVar33[3])" ( identifier , (subscript_expression "puVar33[5]" identifier [ number_literal ]) , (subscript_expression "puVar33[4]" identifier [ number_literal ]) , number_literal , (subscript_expression "puVar33[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" { (labeled_statement "LAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_2,puVar33[5],0);" (call_expression "FUN_0011c0d0(0,param_2,puVar33[5],0)" identifier (argument_list "(0,param_2,puVar33[5],0)" ( number_literal , identifier , (subscript_expression "puVar33[5]" identifier [ number_literal ]) , number_literal ))) ;)) (return_statement "return iVar7;" return identifier ;) })) })) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "puVar44 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar44 = (undefined8 *)*puVar44" identifier = (cast_expression "(undefined8 *)*puVar44" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar44" * identifier))) ) (compound_statement "{\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" { (expression_statement "uVar12 = *(undefined8 *)(puVar44[5] + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(puVar44[5] + 0x68)" identifier = (pointer_expression "*(undefined8 *)(puVar44[5] + 0x68)" * (cast_expression "(undefined8 *)(puVar44[5] + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44[5] + 0x68)" ( (binary_expression "puVar44[5] + 0x68" (subscript_expression "puVar44[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" identifier = (call_expression "bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" identifier (argument_list "(param_2,uVar12,puVar44[4],0,puVar44[3])" ( identifier , identifier , (subscript_expression "puVar44[4]" identifier [ number_literal ]) , number_literal , (subscript_expression "puVar44[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" { (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" identifier (argument_list "(0,param_2,uVar12,0)" ( number_literal , identifier , identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" if (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes")" identifier = (call_expression "bfd_get_section_by_name(param_2,".gnu.build.attributes")" identifier (argument_list "(param_2,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") )))) ;) (if_statement "if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" if (parenthesized_expression "(((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))))" ( (binary_expression "((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" (parenthesized_expression "((lVar38 == 0) || (DAT_0012cb20 == 0))" ( (binary_expression "(lVar38 == 0) || (DAT_0012cb20 == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cb20 == 0)" ( (binary_expression "DAT_0012cb20 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" ( (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))" ( (binary_expression "*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) || (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier = (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier (argument_list "(lVar38,lVar38 + 0xe0)" ( identifier , (binary_expression "lVar38 + 0xe0" identifier + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }" { (if_statement "if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" if (parenthesized_expression "(DAT_0012c508 == 0)" ( (binary_expression "DAT_0012c508 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" { (expression_statement "uVar12 = dcgettext(0,"could not find any mergeable note sections",5);" (assignment_expression "uVar12 = dcgettext(0,"could not find any mergeable note sections",5)" identifier = (call_expression "dcgettext(0,"could not find any mergeable note sections",5)" identifier (argument_list "(0,"could not find any mergeable note sections",5)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" else (compound_statement "{\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" { (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" identifier (argument_list "(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" { (expression_statement "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);" (assignment_expression "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5)" identifier = (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) })) (if_statement "if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" if (parenthesized_expression "((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0))" ( (binary_expression "(DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012ca90 != 0)" ( (binary_expression "DAT_0012ca90 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" ( (comma_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" identifier (argument_list "(param_2,local_a8)" ( identifier , identifier )))) , (comma_expression "lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "lVar38 = DAT_0012ca90" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" { (expression_statement "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier = (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" identifier (argument_list "(0,param_2,0,uVar12,lVar38)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" if (parenthesized_expression "(DAT_0012cad0 != 0 || DAT_0012cac8 != 0)" ( (binary_expression "DAT_0012cad0 != 0 || DAT_0012cac8 != 0" (binary_expression "DAT_0012cad0 != 0" identifier != number_literal) || (binary_expression "DAT_0012cac8 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" { (expression_statement "uVar21 = 0x2000;" (assignment_expression "uVar21 = 0x2000" identifier = number_literal) ;) (if_statement "if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }" if (parenthesized_expression "(local_a0 < 0x2001)" ( (binary_expression "local_a0 < 0x2001" identifier < number_literal) )) (compound_statement "{\n            uVar21 = local_a0;\n          }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) })) (expression_statement "plVar15 = (long *)xmalloc(uVar21);" (assignment_expression "plVar15 = (long *)xmalloc(uVar21)" identifier = (cast_expression "(long *)xmalloc(uVar21)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar21)" identifier (argument_list "(uVar21)" ( identifier ))))) ;) (expression_statement "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;" (assignment_expression "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101" identifier = (binary_expression "(ulong)DAT_0012cacc * 0x101010101010101" (cast_expression "(ulong)DAT_0012cacc" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "uVar28 = (uint)uVar21;" (assignment_expression "uVar28 = (uint)uVar21" identifier = (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" if (parenthesized_expression "(uVar28 < 8)" ( (binary_expression "uVar28 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }" { (if_statement "if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" if (parenthesized_expression "((uVar21 & 4) == 0)" ( (binary_expression "(uVar21 & 4) == 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }" { (if_statement "if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" if (parenthesized_expression "((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0))" ( (binary_expression "(uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" ( (comma_expression "*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0" (assignment_expression "*(char *)plVar15 = (char)lVar38" (pointer_expression "*(char *)plVar15" * (cast_expression "(char *)plVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)lVar38" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" { (expression_statement "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;" (assignment_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38" (pointer_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" * (cast_expression "(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 2)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 2)" ( (binary_expression "(uVar21 & 0xffffffff) - 2" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(short)lVar38" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" else (compound_statement "{\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" { (expression_statement "*(int *)plVar15 = (int)lVar38;" (assignment_expression "*(int *)plVar15 = (int)lVar38" (pointer_expression "*(int *)plVar15" * (cast_expression "(int *)plVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)lVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;" (assignment_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38" (pointer_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" * (cast_expression "(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 4)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 4)" ( (binary_expression "(uVar21 & 0xffffffff) - 4" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(int)lVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" else (compound_statement "{\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" { (expression_statement "*plVar15 = lVar38;" (assignment_expression "*plVar15 = lVar38" (pointer_expression "*plVar15" * identifier) = identifier) ;) (expression_statement "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;" (assignment_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38" (pointer_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" * (cast_expression "(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 8)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 8)" ( (binary_expression "(uVar21 & 0xffffffff) - 8" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = identifier) ;) (expression_statement "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);" (assignment_expression "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" identifier = (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar15 + 1)" ( (binary_expression "plVar15 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" for ( (assignment_expression "uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" identifier = (call_expression "(ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" ( (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3" (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28" (parenthesized_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8))" ( (binary_expression "(int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)plVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar15 + 1)" ( (binary_expression "plVar15 + 1" identifier + number_literal) ))) & number_literal) ))))) )) + identifier) >> number_literal) )))) ; (binary_expression "uVar21 != 0" identifier != number_literal) ; (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ) (compound_statement "{\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" { (expression_statement "*plVar34 = lVar38;" (assignment_expression "*plVar34 = lVar38" (pointer_expression "*plVar34" * identifier) = identifier) ;) (expression_statement "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;" (assignment_expression "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "plVar34 + (ulong)bVar51 * -2 + 1" (binary_expression "plVar34 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) (if_statement "if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x14) != 0)" ( (binary_expression "*(int *)(param_2 + 0x14) != 0" (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" { (expression_statement "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;" (assignment_expression "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" identifier = (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1)" identifier + (call_expression "(ulong)(*(int *)(param_2 + 0x14) - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)(param_2 + 0x14) - 1)" ( (binary_expression "*(int *)(param_2 + 0x14) - 1" (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) - number_literal) )))) + number_literal)) ;) (do_statement "do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);" do (compound_statement "{\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            }" { (expression_statement "uVar21 = *local_90;" (assignment_expression "uVar21 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (if_statement "if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" { (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "lVar16 = *(long *)(lVar38 + 0x38) - uVar21;" (assignment_expression "lVar16 = *(long *)(lVar38 + 0x38) - uVar21" identifier = (binary_expression "*(long *)(lVar38 + 0x38) - uVar21" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) - identifier)) ;) (while_statement "while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" { (expression_statement "uVar29 = 0x2000;" (assignment_expression "uVar29 = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }" if (parenthesized_expression "(uVar21 < 0x2001)" ( (binary_expression "uVar21 < 0x2001" identifier < number_literal) )) (compound_statement "{\n                    uVar29 = uVar21;\n                  }" { (expression_statement "uVar29 = uVar21;" (assignment_expression "uVar29 = uVar21" identifier = identifier) ;) })) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" identifier (argument_list "(param_2,lVar38,plVar15,lVar16,uVar29)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" { (expression_statement "FUN_0011c0d0(0,param_2,*local_98,0);" (call_expression "FUN_0011c0d0(0,param_2,*local_98,0)" identifier (argument_list "(0,param_2,*local_98,0)" ( number_literal , identifier , (pointer_expression "*local_98" * identifier) , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar16 = lVar16 + uVar29;" (assignment_expression "lVar16 = lVar16 + uVar29" identifier = (binary_expression "lVar16 + uVar29" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 - uVar29;" (assignment_expression "uVar21 = uVar21 - uVar29" identifier = (binary_expression "uVar21 - uVar29" identifier - identifier)) ;) (if_statement "if (uVar21 == 0) break;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar32 != local_90)" ( (binary_expression "puVar32 != local_90" identifier != identifier) )) ;) })) })) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0x138))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x138))" ( (pointer_expression "**(code **)(param_2[1] + 0x138)" * (pointer_expression "*(code **)(param_2[1] + 0x138)" * (cast_expression "(code **)(param_2[1] + 0x138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x138)" ( (binary_expression "param_2[1] + 0x138" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" { (if_statement "if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" if (parenthesized_expression "((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0))" ( (binary_expression "(DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" (parenthesized_expression "(DAT_0012cab8 != 0)" ( (binary_expression "DAT_0012cab8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" ( (comma_expression "iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "iVar7 = bfd_alt_mach_code(param_2)" identifier = (call_expression "bfd_alt_mach_code(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (comma_expression "lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "lVar38 = DAT_0012cab8" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" { (expression_statement "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);" (assignment_expression "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5)" identifier = (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5)" identifier (argument_list "(0,"this target does not support %lu alternative machine codes",5)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,lVar38);" (call_expression "FUN_0011b660(uVar12,lVar38)" identifier (argument_list "(uVar12,lVar38)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" if (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5)" ( (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" { (expression_statement "uVar12 = dcgettext(0,"ignoring the alternative value",5);" (assignment_expression "uVar12 = dcgettext(0,"ignoring the alternative value",5)" identifier = (call_expression "dcgettext(0,"ignoring the alternative value",5)" identifier (argument_list "(0,"ignoring the alternative value",5)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);" (assignment_expression "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5)" identifier = (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5)" identifier (argument_list "(0,"treating that number as an absolute e_machine value instead",5)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;" (assignment_expression "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8" (pointer_expression "*(short *)(param_2[0x1f] + 0x3a)" * (cast_expression "(short *)(param_2[0x1f] + 0x3a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x1f] + 0x3a)" ( (binary_expression "param_2[0x1f] + 0x3a" (subscript_expression "param_2[0x1f]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(short)DAT_0012cab8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar12 = dcgettext(0,"error copying private BFD data",5);" (assignment_expression "uVar12 = dcgettext(0,"error copying private BFD data",5)" identifier = (call_expression "dcgettext(0,"error copying private BFD data",5)" identifier (argument_list "(0,"error copying private BFD data",5)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00109580;" goto statement_identifier ;) }))) (expression_statement "uVar28 = DAT_0012ca84;" (assignment_expression "uVar28 = DAT_0012ca84" identifier = identifier) ;) (if_statement "if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" if (parenthesized_expression "((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0))" ( (binary_expression "(DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" (parenthesized_expression "(DAT_0012ca84 == 1)" ( (binary_expression "DAT_0012ca84 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" ( (comma_expression "uVar28 = DAT_0012ca84 & 1, uVar28 == 0" (assignment_expression "uVar28 = DAT_0012ca84 & 1" identifier = (binary_expression "DAT_0012ca84 & 1" identifier & number_literal)) , (binary_expression "uVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }" { (if_statement "if (DAT_0012ca80 == 0) goto LAB_00109056;" if (parenthesized_expression "(DAT_0012ca80 == 0)" ( (binary_expression "DAT_0012ca80 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109056;" goto statement_identifier ;)) (expression_statement "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" identifier = (call_expression "FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" identifier (argument_list "(param_1,DAT_0012ca80,uVar28,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'"" identifier = (string_literal ""--elf-stt-common=[yes|no] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" else (compound_statement "{\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" identifier = (string_literal ""--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }))) })) (labeled_statement "LAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) }))) (return_statement "return iVar7;" return identifier ;) (labeled_statement "LAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" statement_identifier : (if_statement "if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" if (parenthesized_expression "((undefined1 *)((long)pvVar26 + sVar17) <= puVar30)" ( (binary_expression "(undefined1 *)((long)pvVar26 + sVar17) <= puVar30" (cast_expression "(undefined1 *)((long)pvVar26 + sVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + sVar17)" ( (binary_expression "(long)pvVar26 + sVar17" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;))) (expression_statement "*puVar30 = (char)uVar29;" (assignment_expression "*puVar30 = (char)uVar29" (pointer_expression "*puVar30" * identifier) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar29 == 0) goto LAB_0010b3c1;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;)) (expression_statement "uVar29 = uVar29 >> 8;" (assignment_expression "uVar29 = uVar29 >> 8" identifier = (binary_expression "uVar29 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) (labeled_statement "LAB_0010b3c1:\n  psVar6[0xb] = 0;" statement_identifier : (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" identifier = true) ;) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) }))) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nbfd_boolean copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)\n\n{\n  uint *__dest;\n  asymbol **ppaVar1;\n  bfd_byte *pbVar2;\n  char cVar3;\n  bfd_endian bVar4;\n  bfd_endian bVar5;\n  bfd_flavour bVar6;\n  pe_tdata *ppVar7;\n  bfd_target *pbVar8;\n  bfd_uint64_t bVar9;\n  _func_void_bfd_vma_void_ptr *p_Var10;\n  bfd_vma bVar11;\n  bfd_vma bVar12;\n  bfd_vma *pbVar13;\n  section_add *psVar14;\n  section_rename *psVar15;\n  char cVar16;\n  bfd_byte *__dest_00;\n  int iVar17;\n  bfd_architecture bVar18;\n  bfd_boolean bVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int iVar22;\n  char *pcVar23;\n  section_list *psVar24;\n  asection *paVar25;\n  FILE *__s;\n  char *pcVar26;\n  char *__format;\n  undefined8 uVar27;\n  asymbol **ppaVar28;\n  asymbol *paVar29;\n  long lVar30;\n  size_t sVar31;\n  size_t sVar32;\n  asection *paVar33;\n  asection *paVar34;\n  ulong uVar35;\n  long *plVar36;\n  bfd_section *pbVar37;\n  int *piVar38;\n  char *pcVar39;\n  void *pvVar40;\n  bfd_vma bVar41;\n  bfd_vma bVar42;\n  asection *paVar43;\n  ulong uVar44;\n  ulong uVar45;\n  undefined1 *puVar46;\n  uint uVar47;\n  bfd_section *pbVar48;\n  bfd_section *pbVar49;\n  bfd_vma *pbVar50;\n  ulong *puVar51;\n  section_add *psVar52;\n  addsym_node *paVar53;\n  bfd_vma *pbVar54;\n  bfd_vma *pbVar55;\n  bfd_vma *pbVar56;\n  long lVar57;\n  char *pcVar58;\n  code *pcVar59;\n  byte *pbVar60;\n  internal_extra_pe_aouthdr *piVar61;\n  byte *pbVar62;\n  internal_extra_pe_aouthdr *piVar63;\n  long *plVar64;\n  ulong uVar65;\n  ulong uVar66;\n  bfd_vma *pbVar67;\n  bfd_byte *pbVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  undefined1 auVar72 [16];\n  asymbol **local_110;\n  ulong local_100;\n  bfd_byte *local_f0;\n  ulong local_e8;\n  bfd_vma local_c8;\n  bfd_vma local_c0;\n  bfd_vma local_b8;\n  void *local_b0;\n  char *local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined8 local_50;\n  \n  bVar71 = 0;\n  bVar4 = ibfd->xvec->byteorder;\n  bVar5 = obfd->xvec->byteorder;\n  if ((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar23);\n    return 0;\n  }\n  iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n  pcVar23 = (char *)0x0;\n  if (iVar17 == 0) {\nLAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n  }\n  else {\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}\n\n" comment comment (function_definition "bfd_boolean copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)\n\n{\n  uint *__dest;\n  asymbol **ppaVar1;\n  bfd_byte *pbVar2;\n  char cVar3;\n  bfd_endian bVar4;\n  bfd_endian bVar5;\n  bfd_flavour bVar6;\n  pe_tdata *ppVar7;\n  bfd_target *pbVar8;\n  bfd_uint64_t bVar9;\n  _func_void_bfd_vma_void_ptr *p_Var10;\n  bfd_vma bVar11;\n  bfd_vma bVar12;\n  bfd_vma *pbVar13;\n  section_add *psVar14;\n  section_rename *psVar15;\n  char cVar16;\n  bfd_byte *__dest_00;\n  int iVar17;\n  bfd_architecture bVar18;\n  bfd_boolean bVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int iVar22;\n  char *pcVar23;\n  section_list *psVar24;\n  asection *paVar25;\n  FILE *__s;\n  char *pcVar26;\n  char *__format;\n  undefined8 uVar27;\n  asymbol **ppaVar28;\n  asymbol *paVar29;\n  long lVar30;\n  size_t sVar31;\n  size_t sVar32;\n  asection *paVar33;\n  asection *paVar34;\n  ulong uVar35;\n  long *plVar36;\n  bfd_section *pbVar37;\n  int *piVar38;\n  char *pcVar39;\n  void *pvVar40;\n  bfd_vma bVar41;\n  bfd_vma bVar42;\n  asection *paVar43;\n  ulong uVar44;\n  ulong uVar45;\n  undefined1 *puVar46;\n  uint uVar47;\n  bfd_section *pbVar48;\n  bfd_section *pbVar49;\n  bfd_vma *pbVar50;\n  ulong *puVar51;\n  section_add *psVar52;\n  addsym_node *paVar53;\n  bfd_vma *pbVar54;\n  bfd_vma *pbVar55;\n  bfd_vma *pbVar56;\n  long lVar57;\n  char *pcVar58;\n  code *pcVar59;\n  byte *pbVar60;\n  internal_extra_pe_aouthdr *piVar61;\n  byte *pbVar62;\n  internal_extra_pe_aouthdr *piVar63;\n  long *plVar64;\n  ulong uVar65;\n  ulong uVar66;\n  bfd_vma *pbVar67;\n  bfd_byte *pbVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  undefined1 auVar72 [16];\n  asymbol **local_110;\n  ulong local_100;\n  bfd_byte *local_f0;\n  ulong local_e8;\n  bfd_vma local_c8;\n  bfd_vma local_c0;\n  bfd_vma local_b8;\n  void *local_b0;\n  char *local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined8 local_50;\n  \n  bVar71 = 0;\n  bVar4 = ibfd->xvec->byteorder;\n  bVar5 = obfd->xvec->byteorder;\n  if ((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar23);\n    return 0;\n  }\n  iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n  pcVar23 = (char *)0x0;\n  if (iVar17 == 0) {\nLAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n  }\n  else {\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}" type_identifier (function_declarator "copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)" identifier (parameter_list "(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)" ( (parameter_declaration "bfd *ibfd" type_identifier (pointer_declarator "*ibfd" * identifier)) , (parameter_declaration "bfd *obfd" type_identifier (pointer_declarator "*obfd" * identifier)) , (parameter_declaration "bfd_arch_info_type *input_arch" type_identifier (pointer_declarator "*input_arch" * identifier)) ))) (compound_statement "{\n  uint *__dest;\n  asymbol **ppaVar1;\n  bfd_byte *pbVar2;\n  char cVar3;\n  bfd_endian bVar4;\n  bfd_endian bVar5;\n  bfd_flavour bVar6;\n  pe_tdata *ppVar7;\n  bfd_target *pbVar8;\n  bfd_uint64_t bVar9;\n  _func_void_bfd_vma_void_ptr *p_Var10;\n  bfd_vma bVar11;\n  bfd_vma bVar12;\n  bfd_vma *pbVar13;\n  section_add *psVar14;\n  section_rename *psVar15;\n  char cVar16;\n  bfd_byte *__dest_00;\n  int iVar17;\n  bfd_architecture bVar18;\n  bfd_boolean bVar19;\n  int iVar20;\n  undefined4 uVar21;\n  int iVar22;\n  char *pcVar23;\n  section_list *psVar24;\n  asection *paVar25;\n  FILE *__s;\n  char *pcVar26;\n  char *__format;\n  undefined8 uVar27;\n  asymbol **ppaVar28;\n  asymbol *paVar29;\n  long lVar30;\n  size_t sVar31;\n  size_t sVar32;\n  asection *paVar33;\n  asection *paVar34;\n  ulong uVar35;\n  long *plVar36;\n  bfd_section *pbVar37;\n  int *piVar38;\n  char *pcVar39;\n  void *pvVar40;\n  bfd_vma bVar41;\n  bfd_vma bVar42;\n  asection *paVar43;\n  ulong uVar44;\n  ulong uVar45;\n  undefined1 *puVar46;\n  uint uVar47;\n  bfd_section *pbVar48;\n  bfd_section *pbVar49;\n  bfd_vma *pbVar50;\n  ulong *puVar51;\n  section_add *psVar52;\n  addsym_node *paVar53;\n  bfd_vma *pbVar54;\n  bfd_vma *pbVar55;\n  bfd_vma *pbVar56;\n  long lVar57;\n  char *pcVar58;\n  code *pcVar59;\n  byte *pbVar60;\n  internal_extra_pe_aouthdr *piVar61;\n  byte *pbVar62;\n  internal_extra_pe_aouthdr *piVar63;\n  long *plVar64;\n  ulong uVar65;\n  ulong uVar66;\n  bfd_vma *pbVar67;\n  bfd_byte *pbVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  undefined1 auVar72 [16];\n  asymbol **local_110;\n  ulong local_100;\n  bfd_byte *local_f0;\n  ulong local_e8;\n  bfd_vma local_c8;\n  bfd_vma local_c0;\n  bfd_vma local_b8;\n  void *local_b0;\n  char *local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined8 local_50;\n  \n  bVar71 = 0;\n  bVar4 = ibfd->xvec->byteorder;\n  bVar5 = obfd->xvec->byteorder;\n  if ((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar23);\n    return 0;\n  }\n  iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n  pcVar23 = (char *)0x0;\n  if (iVar17 == 0) {\nLAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n  }\n  else {\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}" { (declaration "uint *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "asymbol **ppaVar1;" type_identifier (pointer_declarator "**ppaVar1" * (pointer_declarator "*ppaVar1" * identifier)) ;) (declaration "bfd_byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "bfd_endian bVar4;" type_identifier identifier ;) (declaration "bfd_endian bVar5;" type_identifier identifier ;) (declaration "bfd_flavour bVar6;" type_identifier identifier ;) (declaration "pe_tdata *ppVar7;" type_identifier (pointer_declarator "*ppVar7" * identifier) ;) (declaration "bfd_target *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bfd_uint64_t bVar9;" type_identifier identifier ;) (declaration "_func_void_bfd_vma_void_ptr *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "bfd_vma bVar11;" type_identifier identifier ;) (declaration "bfd_vma bVar12;" type_identifier identifier ;) (declaration "bfd_vma *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "section_add *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "section_rename *psVar15;" type_identifier (pointer_declarator "*psVar15" * identifier) ;) (declaration "char cVar16;" primitive_type identifier ;) (declaration "bfd_byte *__dest_00;" type_identifier (pointer_declarator "*__dest_00" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "bfd_architecture bVar18;" type_identifier identifier ;) (declaration "bfd_boolean bVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "section_list *psVar24;" type_identifier (pointer_declarator "*psVar24" * identifier) ;) (declaration "asection *paVar25;" type_identifier (pointer_declarator "*paVar25" * identifier) ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "asymbol **ppaVar28;" type_identifier (pointer_declarator "**ppaVar28" * (pointer_declarator "*ppaVar28" * identifier)) ;) (declaration "asymbol *paVar29;" type_identifier (pointer_declarator "*paVar29" * identifier) ;) (declaration "long lVar30;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar31;" primitive_type identifier ;) (declaration "size_t sVar32;" primitive_type identifier ;) (declaration "asection *paVar33;" type_identifier (pointer_declarator "*paVar33" * identifier) ;) (declaration "asection *paVar34;" type_identifier (pointer_declarator "*paVar34" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "long *plVar36;" (sized_type_specifier "long" long) (pointer_declarator "*plVar36" * identifier) ;) (declaration "bfd_section *pbVar37;" type_identifier (pointer_declarator "*pbVar37" * identifier) ;) (declaration "int *piVar38;" primitive_type (pointer_declarator "*piVar38" * identifier) ;) (declaration "char *pcVar39;" primitive_type (pointer_declarator "*pcVar39" * identifier) ;) (declaration "void *pvVar40;" primitive_type (pointer_declarator "*pvVar40" * identifier) ;) (declaration "bfd_vma bVar41;" type_identifier identifier ;) (declaration "bfd_vma bVar42;" type_identifier identifier ;) (declaration "asection *paVar43;" type_identifier (pointer_declarator "*paVar43" * identifier) ;) (declaration "ulong uVar44;" type_identifier identifier ;) (declaration "ulong uVar45;" type_identifier identifier ;) (declaration "undefined1 *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "uint uVar47;" type_identifier identifier ;) (declaration "bfd_section *pbVar48;" type_identifier (pointer_declarator "*pbVar48" * identifier) ;) (declaration "bfd_section *pbVar49;" type_identifier (pointer_declarator "*pbVar49" * identifier) ;) (declaration "bfd_vma *pbVar50;" type_identifier (pointer_declarator "*pbVar50" * identifier) ;) (declaration "ulong *puVar51;" type_identifier (pointer_declarator "*puVar51" * identifier) ;) (declaration "section_add *psVar52;" type_identifier (pointer_declarator "*psVar52" * identifier) ;) (declaration "addsym_node *paVar53;" type_identifier (pointer_declarator "*paVar53" * identifier) ;) (declaration "bfd_vma *pbVar54;" type_identifier (pointer_declarator "*pbVar54" * identifier) ;) (declaration "bfd_vma *pbVar55;" type_identifier (pointer_declarator "*pbVar55" * identifier) ;) (declaration "bfd_vma *pbVar56;" type_identifier (pointer_declarator "*pbVar56" * identifier) ;) (declaration "long lVar57;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar58;" primitive_type (pointer_declarator "*pcVar58" * identifier) ;) (declaration "code *pcVar59;" type_identifier (pointer_declarator "*pcVar59" * identifier) ;) (declaration "byte *pbVar60;" type_identifier (pointer_declarator "*pbVar60" * identifier) ;) (declaration "internal_extra_pe_aouthdr *piVar61;" type_identifier (pointer_declarator "*piVar61" * identifier) ;) (declaration "byte *pbVar62;" type_identifier (pointer_declarator "*pbVar62" * identifier) ;) (declaration "internal_extra_pe_aouthdr *piVar63;" type_identifier (pointer_declarator "*piVar63" * identifier) ;) (declaration "long *plVar64;" (sized_type_specifier "long" long) (pointer_declarator "*plVar64" * identifier) ;) (declaration "ulong uVar65;" type_identifier identifier ;) (declaration "ulong uVar66;" type_identifier identifier ;) (declaration "bfd_vma *pbVar67;" type_identifier (pointer_declarator "*pbVar67" * identifier) ;) (declaration "bfd_byte *pbVar68;" type_identifier (pointer_declarator "*pbVar68" * identifier) ;) (declaration "bool bVar69;" primitive_type identifier ;) (declaration "bool bVar70;" primitive_type identifier ;) (declaration "byte bVar71;" type_identifier identifier ;) (declaration "undefined1 auVar72 [16];" type_identifier (array_declarator "auVar72 [16]" identifier [ number_literal ]) ;) (declaration "asymbol **local_110;" type_identifier (pointer_declarator "**local_110" * (pointer_declarator "*local_110" * identifier)) ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "bfd_byte *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "ulong local_e8;" type_identifier identifier ;) (declaration "bfd_vma local_c8;" type_identifier identifier ;) (declaration "bfd_vma local_c0;" type_identifier identifier ;) (declaration "bfd_vma local_b8;" type_identifier identifier ;) (declaration "void *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "ulong local_a0;" type_identifier identifier ;) (declaration "long *local_98;" (sized_type_specifier "long" long) (pointer_declarator "*local_98" * identifier) ;) (declaration "ulong *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "bfd_byte *syms;" type_identifier (pointer_declarator "*syms" * identifier) ;) (declaration "bfd_byte *strings;" type_identifier (pointer_declarator "*strings" * identifier) ;) (declaration "char file_alignment [20];" primitive_type (array_declarator "file_alignment [20]" identifier [ number_literal ]) ;) (declaration "bfd_byte *contents;" type_identifier (pointer_declarator "*contents" * identifier) ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (expression_statement "bVar71 = 0;" (assignment_expression "bVar71 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = ibfd->xvec->byteorder;" (assignment_expression "bVar4 = ibfd->xvec->byteorder" identifier = (field_expression "ibfd->xvec->byteorder" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar5 = obfd->xvec->byteorder;" (assignment_expression "bVar5 = obfd->xvec->byteorder" identifier = (field_expression "obfd->xvec->byteorder" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar23);\n    return 0;\n  }" if (parenthesized_expression "((bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN))" ( (binary_expression "(bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN) && (bVar5 != BFD_ENDIAN_UNKNOWN)" (parenthesized_expression "(bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN)" ( (binary_expression "bVar4 != bVar5 && bVar4 != BFD_ENDIAN_UNKNOWN" (binary_expression "bVar4 != bVar5" identifier != identifier) && (binary_expression "bVar4 != BFD_ENDIAN_UNKNOWN" identifier != identifier)) )) && (parenthesized_expression "(bVar5 != BFD_ENDIAN_UNKNOWN)" ( (binary_expression "bVar5 != BFD_ENDIAN_UNKNOWN" identifier != identifier) ))) )) (compound_statement "{\n    pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar23);\n    return 0;\n  }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unable to change endianness of input file(s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier (argument_list "(0,"Unable to change endianness of input file(s)",5)" ( number_literal , (string_literal ""Unable to change endianness of input file(s)"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23);" (call_expression "non_fatal(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);" (assignment_expression "iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7)" identifier = (call_expression "bfd_set_format(obfd,ibfd->field_0x44 & 7)" identifier (argument_list "(obfd,ibfd->field_0x44 & 7)" ( identifier , (binary_expression "ibfd->field_0x44 & 7" (field_expression "ibfd->field_0x44" identifier -> field_identifier) & number_literal) )))) ;) (expression_statement "pcVar23 = (char *)0x0;" (assignment_expression "pcVar23 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar17 == 0) {\nLAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n  }\n  else {\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n  }" { (labeled_statement "LAB_00109580:\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);" statement_identifier : (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;)) }) (else_clause "else {\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}" else (compound_statement "{\n    if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }\n  return iVar17;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;\n  *puVar46 = (char)uVar45;\n  if (uVar45 == 0) goto LAB_0010b3c1;\n  uVar45 = uVar45 >> 8;\n  puVar46 = puVar46 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  pbVar13[0xb] = 0;\n  bVar69 = true;\n  goto LAB_0010b255;\n}" { (if_statement "if (ibfd->sections == (bfd_section *)0x0) {\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }" if (parenthesized_expression "(ibfd->sections == (bfd_section *)0x0)" ( (binary_expression "ibfd->sections == (bfd_section *)0x0" (field_expression "ibfd->sections" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar23 = bfd_get_archive_filename(ibfd);\n      pcVar58 = "error: the input file \'%s\' has no sections";\n    }" { (expression_statement "pcVar23 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar23 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar58 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar58 = "error: the input file \'%s\' has no sections"" identifier = (string_literal ""error: the input file \'%s\' has no sections"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }" else (compound_statement "{\n      if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);\n    iVar17 = 0;\n    non_fatal(pcVar58,pcVar23);\n  }" { (if_statement "if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" if (parenthesized_expression "(ibfd->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "ibfd->xvec->flavour == bfd_target_elf_flavour" (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }\n        lVar57 = 0;\n        if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }\n        if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }\n        bVar18 = bfd_get_arch(ibfd);\n        uVar47 = bfd_get_mach(ibfd);\n        uVar35 = (ulong)uVar47;\n        if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);\n        if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }\n        iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);\n        if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }\n        bVar6 = obfd->xvec->flavour;\n        bVar69 = bVar6 < bfd_target_coff_flavour;\n        bVar70 = bVar6 == bfd_target_coff_flavour;\n        if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }\n        ppaVar28 = isympp;\n        if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }\n        if (ppaVar28 != osympp) {\n          free(osympp);\n        }\n        isympp = (asymbol **)0x0;\n        osympp = (asymbol **)0x0;\n        lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n        if (lVar57 < 0) goto LAB_001091b0;\n        osympp = (asymbol **)xmalloc(lVar57);\n        isympp = osympp;\n        local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }\n        pcVar59 = setup_section;\n        bfd_map_over_sections(ibfd,setup_section,obfd);\n        psVar52 = add_sections;\n        if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }\n        for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }\nLAB_0010941b:\n        pcVar59 = (code *)pcVar23;\n        for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }\n      if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" { (labeled_statement "LAB_00109056:\n        if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }" statement_identifier : (if_statement "if (verbose != 0) {\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar23 = obfd->filename;\n          pcVar58 = ibfd->xvec->name;\n          pcVar39 = obfd->xvec->name;\n          pcVar26 = bfd_get_archive_filename(ibfd);\n          __format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);\n        }" { (expression_statement "pcVar23 = obfd->filename;" (assignment_expression "pcVar23 = obfd->filename" identifier = (field_expression "obfd->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar58 = ibfd->xvec->name;" (assignment_expression "pcVar58 = ibfd->xvec->name" identifier = (field_expression "ibfd->xvec->name" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar39 = obfd->xvec->name;" (assignment_expression "pcVar39 = obfd->xvec->name" identifier = (field_expression "obfd->xvec->name" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar26 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar26 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "__format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "__format = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier (argument_list "(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( number_literal , (string_literal ""copy from `%s\' [%s] to `%s\' [%s]\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(__format,pcVar26,pcVar58,pcVar23,pcVar39);" (call_expression "printf(__format,pcVar26,pcVar58,pcVar23,pcVar39)" identifier (argument_list "(__format,pcVar26,pcVar58,pcVar23,pcVar39)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "lVar57 = 0;" (assignment_expression "lVar57 = 0" identifier = number_literal) ;) (if_statement "if (extract_symbol == 0) {\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }" if (parenthesized_expression "(extract_symbol == 0)" ( (binary_expression "extract_symbol == 0" identifier == number_literal) )) (compound_statement "{\n          bVar41 = set_start;\n          if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }\n          lVar57 = bVar41 + change_start;\n        }" { (expression_statement "bVar41 = set_start;" (assignment_expression "bVar41 = set_start" identifier = identifier) ;) (if_statement "if (set_start_set == 0) {\n            bVar41 = ibfd->start_address;\n          }" if (parenthesized_expression "(set_start_set == 0)" ( (binary_expression "set_start_set == 0" identifier == number_literal) )) (compound_statement "{\n            bVar41 = ibfd->start_address;\n          }" { (expression_statement "bVar41 = ibfd->start_address;" (assignment_expression "bVar41 = ibfd->start_address" identifier = (field_expression "ibfd->start_address" identifier -> field_identifier)) ;) })) (expression_statement "lVar57 = bVar41 + change_start;" (assignment_expression "lVar57 = bVar41 + change_start" identifier = (binary_expression "bVar41 + change_start" identifier + identifier)) ;) })) (if_statement "if ((obfd->field_0x44 & 7) != 3) {\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }" if (parenthesized_expression "((obfd->field_0x44 & 7) != 3)" ( (binary_expression "(obfd->field_0x44 & 7) != 3" (parenthesized_expression "(obfd->field_0x44 & 7)" ( (binary_expression "obfd->field_0x44 & 7" (field_expression "obfd->field_0x44" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);\n          if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }\n          iVar17 = bfd_set_start_address(obfd,lVar57);\n          if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;\n        }" { (expression_statement "uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff);" (assignment_expression "uVar47 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff)" identifier = (binary_expression "~bfd_flags_to_clear & obfd->xvec->object_flags &\n                   (bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff)" (binary_expression "~bfd_flags_to_clear & obfd->xvec->object_flags" (unary_expression "~bfd_flags_to_clear" ~ identifier) & (field_expression "obfd->xvec->object_flags" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) & (parenthesized_expression "(bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff)" ( (binary_expression "bfd_flags_to_set | *(uint *)&ibfd->field_0x44 >> 5 & 0xfffff" identifier | (binary_expression "*(uint *)&ibfd->field_0x44 >> 5 & 0xfffff" (binary_expression "*(uint *)&ibfd->field_0x44 >> 5" (pointer_expression "*(uint *)&ibfd->field_0x44" * (cast_expression "(uint *)&ibfd->field_0x44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ibfd->field_0x44" & (field_expression "ibfd->field_0x44" identifier -> field_identifier)))) >> number_literal) & number_literal)) )))) ;) (if_statement "if (strip_symbols == STRIP_ALL) {\n            uVar47 = uVar47 & 0xfffffffe;\n          }" if (parenthesized_expression "(strip_symbols == STRIP_ALL)" ( (binary_expression "strip_symbols == STRIP_ALL" identifier == identifier) )) (compound_statement "{\n            uVar47 = uVar47 & 0xfffffffe;\n          }" { (expression_statement "uVar47 = uVar47 & 0xfffffffe;" (assignment_expression "uVar47 = uVar47 & 0xfffffffe" identifier = (binary_expression "uVar47 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar17 = bfd_set_start_address(obfd,lVar57);" (assignment_expression "iVar17 = bfd_set_start_address(obfd,lVar57)" identifier = (call_expression "bfd_set_start_address(obfd,lVar57)" identifier (argument_list "(obfd,lVar57)" ( identifier , identifier )))) ;) (if_statement "if ((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))\n          goto LAB_001091b0;" if (parenthesized_expression "((iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0))" ( (binary_expression "(iVar17 == 0) || (iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0)" (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0)" ( (comma_expression "iVar17 = bfd_set_file_flags(obfd,uVar47), iVar17 == 0" (assignment_expression "iVar17 = bfd_set_file_flags(obfd,uVar47)" identifier = (call_expression "bfd_set_file_flags(obfd,uVar47)" identifier (argument_list "(obfd,uVar47)" ( identifier , identifier )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) })) (expression_statement "bVar18 = bfd_get_arch(ibfd);" (assignment_expression "bVar18 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "uVar47 = bfd_get_mach(ibfd);" (assignment_expression "uVar47 = bfd_get_mach(ibfd)" identifier = (call_expression "bfd_get_mach(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "uVar35 = (ulong)uVar47;" (assignment_expression "uVar35 = (ulong)uVar47" identifier = (cast_expression "(ulong)uVar47" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (input_arch != (bfd_arch_info_type *)0x0) {\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }" if (parenthesized_expression "(input_arch != (bfd_arch_info_type *)0x0)" ( (binary_expression "input_arch != (bfd_arch_info_type *)0x0" identifier != (cast_expression "(bfd_arch_info_type *)0x0" ( (type_descriptor "bfd_arch_info_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          lVar57 = bfd_get_arch_info(ibfd);\n          if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }\n        }" { (expression_statement "lVar57 = bfd_get_arch_info(ibfd);" (assignment_expression "lVar57 = bfd_get_arch_info(ibfd)" identifier = (call_expression "bfd_get_arch_info(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (if_statement "if ((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)) {\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }\n          else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }" if (parenthesized_expression "((lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0))" ( (binary_expression "(lVar57 == 0) || (lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)" (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0)" ( (comma_expression "lVar57 = bfd_get_arch_info(ibfd), *(int *)(lVar57 + 0xc) == 0" (assignment_expression "lVar57 = bfd_get_arch_info(ibfd)" identifier = (call_expression "bfd_get_arch_info(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) , (binary_expression "*(int *)(lVar57 + 0xc) == 0" (pointer_expression "*(int *)(lVar57 + 0xc)" * (cast_expression "(int *)(lVar57 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar57 + 0xc)" ( (binary_expression "lVar57 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n            bVar18 = input_arch->arch;\n            uVar35 = (ulong)(uint)input_arch->mach;\n          }" { (expression_statement "bVar18 = input_arch->arch;" (assignment_expression "bVar18 = input_arch->arch" identifier = (field_expression "input_arch->arch" identifier -> field_identifier)) ;) (expression_statement "uVar35 = (ulong)(uint)input_arch->mach;" (assignment_expression "uVar35 = (ulong)(uint)input_arch->mach" identifier = (cast_expression "(ulong)(uint)input_arch->mach" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)input_arch->mach" ( (type_descriptor "uint" type_identifier) ) (field_expression "input_arch->mach" identifier -> field_identifier)))) ;) }) (else_clause "else {\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }" else (compound_statement "{\n            pcVar23 = bfd_get_archive_filename(ibfd);\n            pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);\n            non_fatal(pcVar58,pcVar23);\n          }" { (expression_statement "pcVar23 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar23 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5)" identifier = (cast_expression "(char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5)" identifier (argument_list "(0,"Input file `%s\' ignores binary architecture parameter.",\n                                        5)" ( number_literal , (string_literal ""Input file `%s\' ignores binary architecture parameter."" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar58,pcVar23);" (call_expression "non_fatal(pcVar58,pcVar23)" identifier (argument_list "(pcVar58,pcVar23)" ( identifier , identifier ))) ;) }))) })) (expression_statement "bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35);" (assignment_expression "bVar19 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35)" identifier = (call_expression "(*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,uVar35)" (parenthesized_expression "(*obfd->xvec->_bfd_set_arch_mach)" ( (pointer_expression "*obfd->xvec->_bfd_set_arch_mach" * (field_expression "obfd->xvec->_bfd_set_arch_mach" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(obfd,bVar18,uVar35)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar19 == 0) {\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }\n          iVar17 = bfd_get_arch(ibfd);\n          iVar20 = bfd_get_arch(obfd);\n          if (iVar17 != iVar20) goto LAB_0010916a;\n        }" { (if_statement "if ((ibfd->field_0x47 & 4) != 0) {\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }" if (parenthesized_expression "((ibfd->field_0x47 & 4) != 0)" ( (binary_expression "(ibfd->field_0x47 & 4) != 0" (parenthesized_expression "(ibfd->field_0x47 & 4)" ( (binary_expression "ibfd->field_0x47 & 4" (field_expression "ibfd->field_0x47" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);\n            if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }\n            pcVar58 = (char *)dcgettext(0,pcVar58,5);\n            non_fatal(pcVar58,pcVar23);\n            return 0;\n          }" { (labeled_statement "LAB_0010916a:\n            iVar17 = bfd_get_arch(ibfd);" statement_identifier : (expression_statement "iVar17 = bfd_get_arch(ibfd);" (assignment_expression "iVar17 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;)) (if_statement "if (iVar17 == 0) {\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = bfd_get_archive_filename(ibfd);\n              pcVar58 = "Unable to recognise the format of the input file `%s\'";\n            }" { (expression_statement "pcVar23 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar23 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar58 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar58 = "Unable to recognise the format of the input file `%s\'"" identifier = (string_literal ""Unable to recognise the format of the input file `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }" else (compound_statement "{\n              uVar27 = bfd_get_mach(ibfd);\n              uVar21 = bfd_get_arch(ibfd);\n              pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);\n              pcVar58 = "Output file cannot represent architecture `%s\'";\n            }" { (expression_statement "uVar27 = bfd_get_mach(ibfd);" (assignment_expression "uVar27 = bfd_get_mach(ibfd)" identifier = (call_expression "bfd_get_mach(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "uVar21 = bfd_get_arch(ibfd);" (assignment_expression "uVar21 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27);" (assignment_expression "pcVar23 = (char *)bfd_printable_arch_mach(uVar21,uVar27)" identifier = (cast_expression "(char *)bfd_printable_arch_mach(uVar21,uVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_printable_arch_mach(uVar21,uVar27)" identifier (argument_list "(uVar21,uVar27)" ( identifier , identifier ))))) ;) (expression_statement "pcVar58 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar58 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "pcVar58 = (char *)dcgettext(0,pcVar58,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,pcVar58,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar58,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar58,5)" identifier (argument_list "(0,pcVar58,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "non_fatal(pcVar58,pcVar23);" (call_expression "non_fatal(pcVar58,pcVar23)" identifier (argument_list "(pcVar58,pcVar23)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar17 = bfd_get_arch(ibfd);" (assignment_expression "iVar17 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "iVar20 = bfd_get_arch(obfd);" (assignment_expression "iVar20 = bfd_get_arch(obfd)" identifier = (call_expression "bfd_get_arch(obfd)" identifier (argument_list "(obfd)" ( identifier )))) ;) (if_statement "if (iVar17 != iVar20) goto LAB_0010916a;" if (parenthesized_expression "(iVar17 != iVar20)" ( (binary_expression "iVar17 != iVar20" identifier != identifier) )) (goto_statement "goto LAB_0010916a;" goto statement_identifier ;)) })) (expression_statement "iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7);" (assignment_expression "iVar17 = bfd_set_format(obfd,ibfd->field_0x44 & 7)" identifier = (call_expression "bfd_set_format(obfd,ibfd->field_0x44 & 7)" identifier (argument_list "(obfd,ibfd->field_0x44 & 7)" ( identifier , (binary_expression "ibfd->field_0x44 & 7" (field_expression "ibfd->field_0x44" identifier -> field_identifier) & number_literal) )))) ;) (if_statement "if (iVar17 == 0) {\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n          return 0;\n        }" { (labeled_statement "LAB_001091b0:\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);" statement_identifier : (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0)" identifier (argument_list "((char *)0x0,ibfd,(asection *)0x0,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = obfd->xvec->flavour;" (assignment_expression "bVar6 = obfd->xvec->flavour" identifier = (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar69 = bVar6 < bfd_target_coff_flavour;" (assignment_expression "bVar69 = bVar6 < bfd_target_coff_flavour" identifier = (binary_expression "bVar6 < bfd_target_coff_flavour" identifier < identifier)) ;) (expression_statement "bVar70 = bVar6 == bfd_target_coff_flavour;" (assignment_expression "bVar70 = bVar6 == bfd_target_coff_flavour" identifier = (binary_expression "bVar6 == bfd_target_coff_flavour" identifier == identifier)) ;) (if_statement "if (bVar70) {\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }" if (parenthesized_expression "(bVar70)" ( identifier )) (compound_statement "{\n          lVar57 = 4;\n          pbVar60 = (byte *)obfd->xvec->name;\n          pbVar62 = &DAT_0011e166;\n          do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);\n          if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }\n        }" { (expression_statement "lVar57 = 4;" (assignment_expression "lVar57 = 4" identifier = number_literal) ;) (expression_statement "pbVar60 = (byte *)obfd->xvec->name;" (assignment_expression "pbVar60 = (byte *)obfd->xvec->name" identifier = (cast_expression "(byte *)obfd->xvec->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "obfd->xvec->name" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "pbVar62 = &DAT_0011e166;" (assignment_expression "pbVar62 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          } while (bVar70);" do (compound_statement "{\n            if (lVar57 == 0) break;\n            lVar57 = lVar57 + -1;\n            bVar69 = *pbVar60 < *pbVar62;\n            bVar70 = *pbVar60 == *pbVar62;\n            pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n            pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n          }" { (if_statement "if (lVar57 == 0) break;" if (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar57 = lVar57 + -1;" (assignment_expression "lVar57 = lVar57 + -1" identifier = (binary_expression "lVar57 + -1" identifier + number_literal)) ;) (expression_statement "bVar69 = *pbVar60 < *pbVar62;" (assignment_expression "bVar69 = *pbVar60 < *pbVar62" identifier = (binary_expression "*pbVar60 < *pbVar62" (pointer_expression "*pbVar60" * identifier) < (pointer_expression "*pbVar62" * identifier))) ;) (expression_statement "bVar70 = *pbVar60 == *pbVar62;" (assignment_expression "bVar70 = *pbVar60 == *pbVar62" identifier = (binary_expression "*pbVar60 == *pbVar62" (pointer_expression "*pbVar60" * identifier) == (pointer_expression "*pbVar62" * identifier))) ;) (expression_statement "pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;" (assignment_expression "pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1" identifier = (binary_expression "pbVar60 + (ulong)bVar71 * -2 + 1" (binary_expression "pbVar60 + (ulong)bVar71 * -2" identifier + (binary_expression "(ulong)bVar71 * -2" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;" (assignment_expression "pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1" identifier = (binary_expression "pbVar62 + (ulong)bVar71 * -2 + 1" (binary_expression "pbVar62 + (ulong)bVar71 * -2" identifier + (binary_expression "(ulong)bVar71 * -2" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar70)" ( identifier )) ;) (if_statement "if ((!bVar69 && !bVar70) == bVar69) {\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }" if (parenthesized_expression "((!bVar69 && !bVar70) == bVar69)" ( (binary_expression "(!bVar69 && !bVar70) == bVar69" (parenthesized_expression "(!bVar69 && !bVar70)" ( (binary_expression "!bVar69 && !bVar70" (unary_expression "!bVar69" ! identifier) && (unary_expression "!bVar70" ! identifier)) )) == identifier) )) (compound_statement "{\n            ppVar7 = (obfd->tdata).pe_obj_data;\n            bVar6 = ibfd->xvec->flavour;\n            bVar69 = bVar6 < bfd_target_coff_flavour;\n            bVar70 = bVar6 == bfd_target_coff_flavour;\n            if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }\n            bVar41 = pe_file_alignment;\n            if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }\n            if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }\n            if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }\n            if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }\n            bVar42 = pe_section_alignment;\n            if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }\n            if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }\n            if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }\n            if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }\n            if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }\n            if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }\n            if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }\n          }" { (expression_statement "ppVar7 = (obfd->tdata).pe_obj_data;" (assignment_expression "ppVar7 = (obfd->tdata).pe_obj_data" identifier = (field_expression "(obfd->tdata).pe_obj_data" (parenthesized_expression "(obfd->tdata)" ( (field_expression "obfd->tdata" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar6 = ibfd->xvec->flavour;" (assignment_expression "bVar6 = ibfd->xvec->flavour" identifier = (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar69 = bVar6 < bfd_target_coff_flavour;" (assignment_expression "bVar69 = bVar6 < bfd_target_coff_flavour" identifier = (binary_expression "bVar6 < bfd_target_coff_flavour" identifier < identifier)) ;) (expression_statement "bVar70 = bVar6 == bfd_target_coff_flavour;" (assignment_expression "bVar70 = bVar6 == bfd_target_coff_flavour" identifier = (binary_expression "bVar6 == bfd_target_coff_flavour" identifier == identifier)) ;) (if_statement "if (bVar70) {\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }" if (parenthesized_expression "(bVar70)" ( identifier )) (compound_statement "{\n              lVar57 = 4;\n              pbVar60 = (byte *)ibfd->xvec->name;\n              pbVar62 = &DAT_0011e166;\n              do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);\n              if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }\n            }" { (expression_statement "lVar57 = 4;" (assignment_expression "lVar57 = 4" identifier = number_literal) ;) (expression_statement "pbVar60 = (byte *)ibfd->xvec->name;" (assignment_expression "pbVar60 = (byte *)ibfd->xvec->name" identifier = (cast_expression "(byte *)ibfd->xvec->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ibfd->xvec->name" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "pbVar62 = &DAT_0011e166;" (assignment_expression "pbVar62 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              } while (bVar70);" do (compound_statement "{\n                if (lVar57 == 0) break;\n                lVar57 = lVar57 + -1;\n                bVar69 = *pbVar60 < *pbVar62;\n                bVar70 = *pbVar60 == *pbVar62;\n                pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;\n                pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;\n              }" { (if_statement "if (lVar57 == 0) break;" if (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar57 = lVar57 + -1;" (assignment_expression "lVar57 = lVar57 + -1" identifier = (binary_expression "lVar57 + -1" identifier + number_literal)) ;) (expression_statement "bVar69 = *pbVar60 < *pbVar62;" (assignment_expression "bVar69 = *pbVar60 < *pbVar62" identifier = (binary_expression "*pbVar60 < *pbVar62" (pointer_expression "*pbVar60" * identifier) < (pointer_expression "*pbVar62" * identifier))) ;) (expression_statement "bVar70 = *pbVar60 == *pbVar62;" (assignment_expression "bVar70 = *pbVar60 == *pbVar62" identifier = (binary_expression "*pbVar60 == *pbVar62" (pointer_expression "*pbVar60" * identifier) == (pointer_expression "*pbVar62" * identifier))) ;) (expression_statement "pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1;" (assignment_expression "pbVar60 = pbVar60 + (ulong)bVar71 * -2 + 1" identifier = (binary_expression "pbVar60 + (ulong)bVar71 * -2 + 1" (binary_expression "pbVar60 + (ulong)bVar71 * -2" identifier + (binary_expression "(ulong)bVar71 * -2" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1;" (assignment_expression "pbVar62 = pbVar62 + (ulong)bVar71 * -2 + 1" identifier = (binary_expression "pbVar62 + (ulong)bVar71 * -2 + 1" (binary_expression "pbVar62 + (ulong)bVar71 * -2" identifier + (binary_expression "(ulong)bVar71 * -2" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar70)" ( identifier )) ;) (if_statement "if ((!bVar69 && !bVar70) == bVar69) {\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }" if (parenthesized_expression "((!bVar69 && !bVar70) == bVar69)" ( (binary_expression "(!bVar69 && !bVar70) == bVar69" (parenthesized_expression "(!bVar69 && !bVar70)" ( (binary_expression "!bVar69 && !bVar70" (unary_expression "!bVar69" ! identifier) && (unary_expression "!bVar70" ! identifier)) )) == identifier) )) (compound_statement "{\n                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;\n                piVar63 = &ppVar7->pe_opthdr;\n                for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }\n              }" { (expression_statement "piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;" (assignment_expression "piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr" identifier = (pointer_expression "&((ibfd->tdata).pe_obj_data)->pe_opthdr" & (field_expression "((ibfd->tdata).pe_obj_data)->pe_opthdr" (parenthesized_expression "((ibfd->tdata).pe_obj_data)" ( (field_expression "(ibfd->tdata).pe_obj_data" (parenthesized_expression "(ibfd->tdata)" ( (field_expression "ibfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) (expression_statement "piVar63 = &ppVar7->pe_opthdr;" (assignment_expression "piVar63 = &ppVar7->pe_opthdr" identifier = (pointer_expression "&ppVar7->pe_opthdr" & (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier))) ;) (for_statement "for (lVar57 = 0x37; lVar57 != 0; lVar57 = lVar57 + -1) {\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }" for ( (assignment_expression "lVar57 = 0x37" identifier = number_literal) ; (binary_expression "lVar57 != 0" identifier != number_literal) ; (assignment_expression "lVar57 = lVar57 + -1" identifier = (binary_expression "lVar57 + -1" identifier + number_literal)) ) (compound_statement "{\n                  cVar3 = piVar61->MajorLinkerVersion;\n                  cVar16 = piVar61->MinorLinkerVersion;\n                  uVar21 = *(undefined4 *)&piVar61->field_0x4;\n                  piVar63->Magic = piVar61->Magic;\n                  piVar63->MajorLinkerVersion = cVar3;\n                  piVar63->MinorLinkerVersion = cVar16;\n                  *(undefined4 *)&piVar63->field_0x4 = uVar21;\n                  piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                  piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;\n                }" { (expression_statement "cVar3 = piVar61->MajorLinkerVersion;" (assignment_expression "cVar3 = piVar61->MajorLinkerVersion" identifier = (field_expression "piVar61->MajorLinkerVersion" identifier -> field_identifier)) ;) (expression_statement "cVar16 = piVar61->MinorLinkerVersion;" (assignment_expression "cVar16 = piVar61->MinorLinkerVersion" identifier = (field_expression "piVar61->MinorLinkerVersion" identifier -> field_identifier)) ;) (expression_statement "uVar21 = *(undefined4 *)&piVar61->field_0x4;" (assignment_expression "uVar21 = *(undefined4 *)&piVar61->field_0x4" identifier = (pointer_expression "*(undefined4 *)&piVar61->field_0x4" * (cast_expression "(undefined4 *)&piVar61->field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&piVar61->field_0x4" & (field_expression "piVar61->field_0x4" identifier -> field_identifier))))) ;) (expression_statement "piVar63->Magic = piVar61->Magic;" (assignment_expression "piVar63->Magic = piVar61->Magic" (field_expression "piVar63->Magic" identifier -> field_identifier) = (field_expression "piVar61->Magic" identifier -> field_identifier)) ;) (expression_statement "piVar63->MajorLinkerVersion = cVar3;" (assignment_expression "piVar63->MajorLinkerVersion = cVar3" (field_expression "piVar63->MajorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar63->MinorLinkerVersion = cVar16;" (assignment_expression "piVar63->MinorLinkerVersion = cVar16" (field_expression "piVar63->MinorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&piVar63->field_0x4 = uVar21;" (assignment_expression "*(undefined4 *)&piVar63->field_0x4 = uVar21" (pointer_expression "*(undefined4 *)&piVar63->field_0x4" * (cast_expression "(undefined4 *)&piVar63->field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&piVar63->field_0x4" & (field_expression "piVar63->field_0x4" identifier -> field_identifier)))) = identifier) ;) (expression_statement "piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)\n                  ;" (assignment_expression "piVar61 = (internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)" identifier = (cast_expression "(internal_extra_pe_aouthdr *)((long)piVar61 + (ulong)bVar71 * -0x10 + 8)" ( (type_descriptor "internal_extra_pe_aouthdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar61 + (ulong)bVar71 * -0x10 + 8)" ( (binary_expression "(long)piVar61 + (ulong)bVar71 * -0x10 + 8" (binary_expression "(long)piVar61 + (ulong)bVar71 * -0x10" (cast_expression "(long)piVar61" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar71 * -0x10" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)\n                  ;" (assignment_expression "piVar63 = (internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)" identifier = (cast_expression "(internal_extra_pe_aouthdr *)((long)piVar63 + (ulong)bVar71 * -0x10 + 8)" ( (type_descriptor "internal_extra_pe_aouthdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)piVar63 + (ulong)bVar71 * -0x10 + 8)" ( (binary_expression "(long)piVar63 + (ulong)bVar71 * -0x10 + 8" (binary_expression "(long)piVar63 + (ulong)bVar71 * -0x10" (cast_expression "(long)piVar63" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar71 * -0x10" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) })) })) (expression_statement "bVar41 = pe_file_alignment;" (assignment_expression "bVar41 = pe_file_alignment" identifier = identifier) ;) (if_statement "if (pe_file_alignment == 0xffffffffffffffff) {\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }\n            else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }" if (parenthesized_expression "(pe_file_alignment == 0xffffffffffffffff)" ( (binary_expression "pe_file_alignment == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              pe_file_alignment = 0x200;\n              bVar41 = 0x200;\n            }" { (expression_statement "pe_file_alignment = 0x200;" (assignment_expression "pe_file_alignment = 0x200" identifier = number_literal) ;) (expression_statement "bVar41 = 0x200;" (assignment_expression "bVar41 = 0x200" identifier = number_literal) ;) }) (else_clause "else {\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }" else (compound_statement "{\n              (ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;\n            }" { (expression_statement "(ppVar7->pe_opthdr).FileAlignment = pe_file_alignment;" (assignment_expression "(ppVar7->pe_opthdr).FileAlignment = pe_file_alignment" (field_expression "(ppVar7->pe_opthdr).FileAlignment" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (if_statement "if (pe_heap_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }" if (parenthesized_expression "(pe_heap_commit != 0xffffffffffffffff)" ( (binary_expression "pe_heap_commit != 0xffffffffffffffff" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;\n            }" { (expression_statement "(ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit;" (assignment_expression "(ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_commit" (field_expression "(ppVar7->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_heap_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }" if (parenthesized_expression "(pe_heap_reserve != 0xffffffffffffffff)" ( (binary_expression "pe_heap_reserve != 0xffffffffffffffff" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;\n            }" { (expression_statement "(ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve;" (assignment_expression "(ppVar7->pe_opthdr).SizeOfHeapCommit = pe_heap_reserve" (field_expression "(ppVar7->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_image_base != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }" if (parenthesized_expression "(pe_image_base != 0xffffffffffffffff)" ( (binary_expression "pe_image_base != 0xffffffffffffffff" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).ImageBase = pe_image_base;\n            }" { (expression_statement "(ppVar7->pe_opthdr).ImageBase = pe_image_base;" (assignment_expression "(ppVar7->pe_opthdr).ImageBase = pe_image_base" (field_expression "(ppVar7->pe_opthdr).ImageBase" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (expression_statement "bVar42 = pe_section_alignment;" (assignment_expression "bVar42 = pe_section_alignment" identifier = identifier) ;) (if_statement "if (pe_section_alignment == 0xffffffffffffffff) {\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }\n            else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }" if (parenthesized_expression "(pe_section_alignment == 0xffffffffffffffff)" ( (binary_expression "pe_section_alignment == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              pe_section_alignment = 0x1000;\n              bVar42 = 0x1000;\n            }" { (expression_statement "pe_section_alignment = 0x1000;" (assignment_expression "pe_section_alignment = 0x1000" identifier = number_literal) ;) (expression_statement "bVar42 = 0x1000;" (assignment_expression "bVar42 = 0x1000" identifier = number_literal) ;) }) (else_clause "else {\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }" else (compound_statement "{\n              (ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;\n            }" { (expression_statement "(ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment;" (assignment_expression "(ppVar7->pe_opthdr).SectionAlignment = pe_section_alignment" (field_expression "(ppVar7->pe_opthdr).SectionAlignment" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (if_statement "if (pe_stack_commit != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }" if (parenthesized_expression "(pe_stack_commit != 0xffffffffffffffff)" ( (binary_expression "pe_stack_commit != 0xffffffffffffffff" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;\n            }" { (expression_statement "(ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit;" (assignment_expression "(ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_commit" (field_expression "(ppVar7->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_stack_reserve != 0xffffffffffffffff) {\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }" if (parenthesized_expression "(pe_stack_reserve != 0xffffffffffffffff)" ( (binary_expression "pe_stack_reserve != 0xffffffffffffffff" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;\n            }" { (expression_statement "(ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve;" (assignment_expression "(ppVar7->pe_opthdr).SizeOfStackCommit = pe_stack_reserve" (field_expression "(ppVar7->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_subsystem != -1) {\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }" if (parenthesized_expression "(pe_subsystem != -1)" ( (binary_expression "pe_subsystem != -1" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).Subsystem = pe_subsystem;\n            }" { (expression_statement "(ppVar7->pe_opthdr).Subsystem = pe_subsystem;" (assignment_expression "(ppVar7->pe_opthdr).Subsystem = pe_subsystem" (field_expression "(ppVar7->pe_opthdr).Subsystem" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_major_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }" if (parenthesized_expression "(pe_major_subsystem_version != -1)" ( (binary_expression "pe_major_subsystem_version != -1" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n            }" { (expression_statement "(ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;" (assignment_expression "(ppVar7->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version" (field_expression "(ppVar7->pe_opthdr).MajorSubsystemVersion" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_minor_subsystem_version != -1) {\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }" if (parenthesized_expression "(pe_minor_subsystem_version != -1)" ( (binary_expression "pe_minor_subsystem_version != -1" identifier != number_literal) )) (compound_statement "{\n              (ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n            }" { (expression_statement "(ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;" (assignment_expression "(ppVar7->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version" (field_expression "(ppVar7->pe_opthdr).MinorSubsystemVersion" (parenthesized_expression "(ppVar7->pe_opthdr)" ( (field_expression "ppVar7->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (bVar42 < bVar41) {\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }" if (parenthesized_expression "(bVar42 < bVar41)" ( (binary_expression "bVar42 < bVar41" identifier < identifier) )) (compound_statement "{\n              sprintf(file_alignment,"%016lx");\n              sprintf((char *)&contents,"%016lx",pe_section_alignment);\n              pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);\n              non_fatal(pcVar23,file_alignment,&contents);\n            }" { (expression_statement "sprintf(file_alignment,"%016lx");" (call_expression "sprintf(file_alignment,"%016lx")" identifier (argument_list "(file_alignment,"%016lx")" ( identifier , (string_literal ""%016lx"" " string_content ") ))) ;) (expression_statement "sprintf((char *)&contents,"%016lx",pe_section_alignment);" (call_expression "sprintf((char *)&contents,"%016lx",pe_section_alignment)" identifier (argument_list "((char *)&contents,"%016lx",pe_section_alignment)" ( (cast_expression "(char *)&contents" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&contents" & identifier)) , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) (expression_statement "pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5)" identifier (argument_list "(0,\n                                          "warning: file alignment (0x%s) > section alignment (0x%s)"\n                                          ,5)" ( number_literal , (string_literal ""warning: file alignment (0x%s) > section alignment (0x%s)"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23,file_alignment,&contents);" (call_expression "non_fatal(pcVar23,file_alignment,&contents)" identifier (argument_list "(pcVar23,file_alignment,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) ))) ;) })) })) })) (expression_statement "ppaVar28 = isympp;" (assignment_expression "ppaVar28 = isympp" identifier = identifier) ;) (if_statement "if (isympp != (asymbol **)0x0) {\n          free(isympp);\n        }" if (parenthesized_expression "(isympp != (asymbol **)0x0)" ( (binary_expression "isympp != (asymbol **)0x0" identifier != (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          free(isympp);\n        }" { (expression_statement "free(isympp);" (call_expression "free(isympp)" identifier (argument_list "(isympp)" ( identifier ))) ;) })) (if_statement "if (ppaVar28 != osympp) {\n          free(osympp);\n        }" if (parenthesized_expression "(ppaVar28 != osympp)" ( (binary_expression "ppaVar28 != osympp" identifier != identifier) )) (compound_statement "{\n          free(osympp);\n        }" { (expression_statement "free(osympp);" (call_expression "free(osympp)" identifier (argument_list "(osympp)" ( identifier ))) ;) })) (expression_statement "isympp = (asymbol **)0x0;" (assignment_expression "isympp = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "osympp = (asymbol **)0x0;" (assignment_expression "osympp = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);" (assignment_expression "lVar57 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd)" identifier = (call_expression "(*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd)" (parenthesized_expression "(*ibfd->xvec->_bfd_get_symtab_upper_bound)" ( (pointer_expression "*ibfd->xvec->_bfd_get_symtab_upper_bound" * (field_expression "ibfd->xvec->_bfd_get_symtab_upper_bound" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(ibfd)" ( identifier )))) ;) (if_statement "if (lVar57 < 0) goto LAB_001091b0;" if (parenthesized_expression "(lVar57 < 0)" ( (binary_expression "lVar57 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (expression_statement "osympp = (asymbol **)xmalloc(lVar57);" (assignment_expression "osympp = (asymbol **)xmalloc(lVar57)" identifier = (cast_expression "(asymbol **)xmalloc(lVar57)" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(lVar57)" identifier (argument_list "(lVar57)" ( identifier ))))) ;) (expression_statement "isympp = osympp;" (assignment_expression "isympp = osympp" identifier = identifier) ;) (expression_statement "local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);" (assignment_expression "local_100 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp)" identifier = (call_expression "(*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp)" (parenthesized_expression "(*ibfd->xvec->_bfd_canonicalize_symtab)" ( (pointer_expression "*ibfd->xvec->_bfd_canonicalize_symtab" * (field_expression "ibfd->xvec->_bfd_canonicalize_symtab" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(ibfd,osympp)" ( identifier , identifier )))) ;) (if_statement "if ((long)local_100 < 0) goto LAB_001091b0;" if (parenthesized_expression "((long)local_100 < 0)" ( (binary_expression "(long)local_100 < 0" (cast_expression "(long)local_100" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (if_statement "if (local_100 == 0) {\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n          free(isympp);\n          isympp = (asymbol **)0x0;\n          osympp = (asymbol **)0x0;\n        }" { (expression_statement "free(isympp);" (call_expression "free(isympp)" identifier (argument_list "(isympp)" ( identifier ))) ;) (expression_statement "isympp = (asymbol **)0x0;" (assignment_expression "isympp = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "osympp = (asymbol **)0x0;" (assignment_expression "osympp = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) (expression_statement "pcVar59 = setup_section;" (assignment_expression "pcVar59 = setup_section" identifier = identifier) ;) (expression_statement "bfd_map_over_sections(ibfd,setup_section,obfd);" (call_expression "bfd_map_over_sections(ibfd,setup_section,obfd)" identifier (argument_list "(ibfd,setup_section,obfd)" ( identifier , identifier , identifier ))) ;) (expression_statement "psVar52 = add_sections;" (assignment_expression "psVar52 = add_sections" identifier = identifier) ;) (if_statement "if ((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)) {\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }" if (parenthesized_expression "((extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0))" ( (binary_expression "(extract_symbol == 0) &&\n           (pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)" (parenthesized_expression "(extract_symbol == 0)" ( (binary_expression "extract_symbol == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0)" ( (comma_expression "pcVar59 = (code *)obfd, bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0" (assignment_expression "pcVar59 = (code *)obfd" identifier = (cast_expression "(code *)obfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)\n           , psVar52 = add_sections, bVar19 == 0" (assignment_expression "bVar19 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)" identifier = (call_expression "(*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)" (parenthesized_expression "(*obfd->xvec->_bfd_copy_private_header_data)" ( (pointer_expression "*obfd->xvec->_bfd_copy_private_header_data" * (field_expression "obfd->xvec->_bfd_copy_private_header_data" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(ibfd,obfd)" ( identifier , identifier )))) , (comma_expression "psVar52 = add_sections, bVar19 == 0" (assignment_expression "psVar52 = add_sections" identifier = identifier) , (binary_expression "bVar19 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n          status = 1;\n          pcVar23 = (char *)dcgettext(0,"error in private header data",5);\n          pcVar59 = (code *)ibfd;\n          bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);\n          psVar52 = add_sections;\n        }" { (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (expression_statement "pcVar23 = (char *)dcgettext(0,"error in private header data",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"error in private header data",5)" identifier = (cast_expression "(char *)dcgettext(0,"error in private header data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error in private header data",5)" identifier (argument_list "(0,"error in private header data",5)" ( number_literal , (string_literal ""error in private header data"" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar59 = (code *)ibfd;" (assignment_expression "pcVar59 = (code *)ibfd" identifier = (cast_expression "(code *)ibfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar23)" identifier (argument_list "((char *)0x0,ibfd,(asection *)0x0,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (expression_statement "psVar52 = add_sections;" (assignment_expression "psVar52 = add_sections" identifier = identifier) ;) })) (for_statement "for (; pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }" for ( ; (comma_expression "pcVar23 = (char *)pcVar59, psVar14 = update_sections, psVar52 != (section_add *)0x0" (assignment_expression "pcVar23 = (char *)pcVar59" identifier = (cast_expression "(char *)pcVar59" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "psVar14 = update_sections, psVar52 != (section_add *)0x0" (assignment_expression "psVar14 = update_sections" identifier = identifier) , (binary_expression "psVar52 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "psVar52 = psVar52->next" identifier = (field_expression "psVar52->next" identifier -> field_identifier)) ) (compound_statement "{\n          uVar47 = 0x128;\n          psVar24 = find_section_list(psVar52->name,0,0x40);\n          if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }\n          lVar57 = bfd_get_section_by_name(obfd,psVar52->name);\n          if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);\n          psVar52->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);\n          if (bVar19 == 0) goto LAB_00109aa8;\n          psVar24 = find_section_list(psVar52->name,0,0xc);\n          if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }\n          pcVar59 = (code *)0x0;\n          psVar24 = find_section_list(psVar52->name,0,0x30);\n          if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }\n        }" { (expression_statement "uVar47 = 0x128;" (assignment_expression "uVar47 = 0x128" identifier = number_literal) ;) (expression_statement "psVar24 = find_section_list(psVar52->name,0,0x40);" (assignment_expression "psVar24 = find_section_list(psVar52->name,0,0x40)" identifier = (call_expression "find_section_list(psVar52->name,0,0x40)" identifier (argument_list "(psVar52->name,0,0x40)" ( (field_expression "psVar52->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar24 != (section_list *)0x0) {\n            uVar47 = psVar24->flags | 0x100;\n          }" if (parenthesized_expression "(psVar24 != (section_list *)0x0)" ( (binary_expression "psVar24 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar47 = psVar24->flags | 0x100;\n          }" { (expression_statement "uVar47 = psVar24->flags | 0x100;" (assignment_expression "uVar47 = psVar24->flags | 0x100" identifier = (binary_expression "psVar24->flags | 0x100" (field_expression "psVar24->flags" identifier -> field_identifier) | number_literal)) ;) })) (expression_statement "lVar57 = bfd_get_section_by_name(obfd,psVar52->name);" (assignment_expression "lVar57 = bfd_get_section_by_name(obfd,psVar52->name)" identifier = (call_expression "bfd_get_section_by_name(obfd,psVar52->name)" identifier (argument_list "(obfd,psVar52->name)" ( identifier , (field_expression "psVar52->name" identifier -> field_identifier) )))) ;) (if_statement "if (lVar57 != 0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(lVar57 != 0)" ( (binary_expression "lVar57 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "pcVar23 = psVar52->name;" (assignment_expression "pcVar23 = psVar52->name" identifier = (field_expression "psVar52->name" identifier -> field_identifier)) ;) (expression_statement "pcVar58 = "can\'t add section \'%s\'";" (assignment_expression "pcVar58 = "can\'t add section \'%s\'"" identifier = (string_literal ""can\'t add section \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000);" (assignment_expression "paVar25 = (asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000)" identifier = (cast_expression "(asection *)bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_with_flags(obfd,psVar52->name,uVar47 | 0x100000)" identifier (argument_list "(obfd,psVar52->name,uVar47 | 0x100000)" ( identifier , (field_expression "psVar52->name" identifier -> field_identifier) , (binary_expression "uVar47 | 0x100000" identifier | number_literal) ))))) ;) (expression_statement "psVar52->section = paVar25;" (assignment_expression "psVar52->section = paVar25" (field_expression "psVar52->section" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(paVar25 == (asection *)0x0)" ( (binary_expression "paVar25 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar23 = psVar52->name;\n            pcVar58 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "pcVar23 = psVar52->name;" (assignment_expression "pcVar23 = psVar52->name" identifier = (field_expression "psVar52->name" identifier -> field_identifier)) ;) (expression_statement "pcVar58 = "can\'t create section `%s\'";" (assignment_expression "pcVar58 = "can\'t create section `%s\'"" identifier = (string_literal ""can\'t create section `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size);" (assignment_expression "bVar19 = bfd_set_section_size(obfd,paVar25,psVar52->size)" identifier = (call_expression "bfd_set_section_size(obfd,paVar25,psVar52->size)" identifier (argument_list "(obfd,paVar25,psVar52->size)" ( identifier , identifier , (field_expression "psVar52->size" identifier -> field_identifier) )))) ;) (if_statement "if (bVar19 == 0) goto LAB_00109aa8;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109aa8;" goto statement_identifier ;)) (expression_statement "psVar24 = find_section_list(psVar52->name,0,0xc);" (assignment_expression "psVar24 = find_section_list(psVar52->name,0,0xc)" identifier = (call_expression "find_section_list(psVar52->name,0,0xc)" identifier (argument_list "(psVar52->name,0,0xc)" ( (field_expression "psVar52->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar24 != (section_list *)0x0) {\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }" if (parenthesized_expression "(psVar24 != (section_list *)0x0)" ( (binary_expression "psVar24 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar41 = psVar24->vma_val;\n            paVar25 = psVar52->section;\n            paVar25->field_0x24 = paVar25->field_0x24 | 1;\n            paVar25->lma = bVar41;\n            paVar25->vma = bVar41;\n          }" { (expression_statement "bVar41 = psVar24->vma_val;" (assignment_expression "bVar41 = psVar24->vma_val" identifier = (field_expression "psVar24->vma_val" identifier -> field_identifier)) ;) (expression_statement "paVar25 = psVar52->section;" (assignment_expression "paVar25 = psVar52->section" identifier = (field_expression "psVar52->section" identifier -> field_identifier)) ;) (expression_statement "paVar25->field_0x24 = paVar25->field_0x24 | 1;" (assignment_expression "paVar25->field_0x24 = paVar25->field_0x24 | 1" (field_expression "paVar25->field_0x24" identifier -> field_identifier) = (binary_expression "paVar25->field_0x24 | 1" (field_expression "paVar25->field_0x24" identifier -> field_identifier) | number_literal)) ;) (expression_statement "paVar25->lma = bVar41;" (assignment_expression "paVar25->lma = bVar41" (field_expression "paVar25->lma" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar25->vma = bVar41;" (assignment_expression "paVar25->vma = bVar41" (field_expression "paVar25->vma" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pcVar59 = (code *)0x0;" (assignment_expression "pcVar59 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar24 = find_section_list(psVar52->name,0,0x30);" (assignment_expression "psVar24 = find_section_list(psVar52->name,0,0x30)" identifier = (call_expression "find_section_list(psVar52->name,0,0x30)" identifier (argument_list "(psVar52->name,0,0x30)" ( (field_expression "psVar52->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar24 != (section_list *)0x0) {\n            psVar52->section->lma = psVar24->lma_val;\n          }" if (parenthesized_expression "(psVar24 != (section_list *)0x0)" ( (binary_expression "psVar24 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            psVar52->section->lma = psVar24->lma_val;\n          }" { (expression_statement "psVar52->section->lma = psVar24->lma_val;" (assignment_expression "psVar52->section->lma = psVar24->lma_val" (field_expression "psVar52->section->lma" (field_expression "psVar52->section" identifier -> field_identifier) -> field_identifier) = (field_expression "psVar24->lma_val" identifier -> field_identifier)) ;) })) })) (for_statement "for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "psVar14 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "psVar14 = psVar14->next" identifier = (field_expression "psVar14->next" identifier -> field_identifier)) ) (compound_statement "{\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);\n          psVar14->section = paVar25;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          paVar25 = paVar25->output_section;\n          pcVar23 = (char *)paVar25;\n          iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }" { (expression_statement "paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name);" (assignment_expression "paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar14->name)" identifier = (cast_expression "(asection *)bfd_get_section_by_name(ibfd,psVar14->name)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(ibfd,psVar14->name)" identifier (argument_list "(ibfd,psVar14->name)" ( identifier , (field_expression "psVar14->name" identifier -> field_identifier) ))))) ;) (expression_statement "psVar14->section = paVar25;" (assignment_expression "psVar14->section = paVar25" (field_expression "psVar14->section" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" if (parenthesized_expression "(paVar25 == (asection *)0x0)" ( (binary_expression "paVar25 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar23 = psVar14->name;\n            pcVar58 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" { (expression_statement "pcVar23 = psVar14->name;" (assignment_expression "pcVar23 = psVar14->name" identifier = (field_expression "psVar14->name" identifier -> field_identifier)) ;) (expression_statement "pcVar58 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar58 = "error: %s not found, can\'t be updated"" identifier = (string_literal ""error: %s not found, can\'t be updated"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010952f;" goto statement_identifier ;) })) (expression_statement "paVar25 = paVar25->output_section;" (assignment_expression "paVar25 = paVar25->output_section" identifier = (field_expression "paVar25->output_section" identifier -> field_identifier)) ;) (expression_statement "pcVar23 = (char *)paVar25;" (assignment_expression "pcVar23 = (char *)paVar25" identifier = (cast_expression "(char *)paVar25" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size);" (assignment_expression "iVar17 = bfd_set_section_size(obfd,paVar25,psVar14->size)" identifier = (call_expression "bfd_set_section_size(obfd,paVar25,psVar14->size)" identifier (argument_list "(obfd,paVar25,psVar14->size)" ( identifier , identifier , (field_expression "psVar14->size" identifier -> field_identifier) )))) ;) (if_statement "if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }" { (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,paVar25,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (merge_notes != 0) {\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(merge_notes != 0)" ( (binary_expression "merge_notes != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar23 = ".gnu.build.attributes";\n          auVar72 = bfd_get_section_by_name(ibfd);\n          paVar25 = auVar72._0_8_;\n          if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "pcVar23 = ".gnu.build.attributes";" (assignment_expression "pcVar23 = ".gnu.build.attributes"" identifier = (string_literal "".gnu.build.attributes"" " string_content ")) ;) (expression_statement "auVar72 = bfd_get_section_by_name(ibfd);" (assignment_expression "auVar72 = bfd_get_section_by_name(ibfd)" identifier = (call_expression "bfd_get_section_by_name(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "paVar25 = auVar72._0_8_;" (assignment_expression "paVar25 = auVar72._0_8_" identifier = (field_expression "auVar72._0_8_" identifier . field_identifier)) ;) (if_statement "if (((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)) {\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour))" ( (binary_expression "((paVar25 != (asection *)0x0) && (merge_notes != 0)) &&\n             (ibfd->xvec->flavour == bfd_target_elf_flavour)" (parenthesized_expression "((paVar25 != (asection *)0x0) && (merge_notes != 0))" ( (binary_expression "(paVar25 != (asection *)0x0) && (merge_notes != 0)" (parenthesized_expression "(paVar25 != (asection *)0x0)" ( (binary_expression "paVar25 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(merge_notes != 0)" ( (binary_expression "merge_notes != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(ibfd->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "ibfd->xvec->flavour == bfd_target_elf_flavour" (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) ))) )) (compound_statement "{\n            pcVar23 = (char *)&paVar25->used_by_bfd;\n            bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);\n            if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }\n          }" { (expression_statement "pcVar23 = (char *)&paVar25->used_by_bfd;" (assignment_expression "pcVar23 = (char *)&paVar25->used_by_bfd" identifier = (cast_expression "(char *)&paVar25->used_by_bfd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->used_by_bfd" & (field_expression "paVar25->used_by_bfd" identifier -> field_identifier)))) ;) (expression_statement "bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_);" (assignment_expression "bVar19 = is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_)" identifier = (call_expression "is_merged_note_section((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_)" identifier (argument_list "((bfd *)paVar25,(asection *)pcVar23,auVar72._8_8_)" ( (cast_expression "(bfd *)paVar25" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(asection *)pcVar23" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "auVar72._8_8_" identifier . field_identifier) )))) ;) (if_statement "if (bVar19 != 0) {\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar35 = paVar25->size;\n              pcVar23 = (char *)ibfd;\n              if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }\n            }" { (expression_statement "uVar35 = paVar25->size;" (assignment_expression "uVar35 = paVar25->size" identifier = (field_expression "paVar25->size" identifier -> field_identifier)) ;) (expression_statement "pcVar23 = (char *)ibfd;" (assignment_expression "pcVar23 = (char *)ibfd" identifier = (cast_expression "(char *)ibfd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar35 == 0) {\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }\n              else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);\n                bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                merge_notes = 0;\n              }" { (expression_statement "pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"warning: note section is empty",5)" identifier = (cast_expression "(char *)dcgettext(0,"warning: note section is empty",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: note section is empty",5)" identifier (argument_list "(0,"warning: note section is empty",5)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58)" identifier (argument_list "((char *)0x0,ibfd,paVar25,pcVar58)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "merge_notes = 0;" (assignment_expression "merge_notes = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }" else (compound_statement "{\n                iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);\n                __dest_00 = merged_notes;\n                if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }\n              }" { (expression_statement "iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes);" (assignment_expression "iVar17 = bfd_get_full_section_contents(ibfd,paVar25,&merged_notes)" identifier = (call_expression "bfd_get_full_section_contents(ibfd,paVar25,&merged_notes)" identifier (argument_list "(ibfd,paVar25,&merged_notes)" ( identifier , identifier , (pointer_expression "&merged_notes" & identifier) )))) ;) (expression_statement "__dest_00 = merged_notes;" (assignment_expression "__dest_00 = merged_notes" identifier = identifier) ;) (if_statement "if (iVar17 == 0) {\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }\n                else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);\n                  bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                }" { (expression_statement "pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"warning: could not load note section",5)" identifier = (cast_expression "(char *)dcgettext(0,"warning: could not load note section",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: could not load note section",5)" identifier (argument_list "(0,"warning: could not load note section",5)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58)" identifier (argument_list "((char *)0x0,ibfd,paVar25,pcVar58)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "free(merged_notes);" (call_expression "free(merged_notes)" identifier (argument_list "(merged_notes)" ( identifier ))) ;) (expression_statement "merged_notes = (bfd_byte *)0x0;" (assignment_expression "merged_notes = (bfd_byte *)0x0" identifier = (cast_expression "(bfd_byte *)0x0" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "merge_notes = 0;" (assignment_expression "merge_notes = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }" else (compound_statement "{\n                  lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);\n                  if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }\nLAB_0010ae6f:\n                  pcVar23 = (char *)0x48;\n                  local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);\n                  iVar17 = 0;\n                  local_c0 = 0;\n                  local_b0 = (void *)0x0;\n                  local_c8 = 0;\n                  local_b8 = 0;\n                  iVar20 = 0;\n                  iVar22 = 0;\n                  pbVar54 = (bfd_vma *)local_110;\n                  pbVar68 = __dest_00;\n                  local_e8 = uVar35;\n                  while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }\n                  if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }\n                  free(merged_notes);\n                  merged_notes = (bfd_byte *)0x0;\n                  merge_notes = 0;\n                  merged_size = 0;\n                }" { (expression_statement "lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25);" (assignment_expression "lVar57 = bfd_get_reloc_upper_bound(ibfd,paVar25)" identifier = (call_expression "bfd_get_reloc_upper_bound(ibfd,paVar25)" identifier (argument_list "(ibfd,paVar25)" ( identifier , identifier )))) ;) (if_statement "if (0 < lVar57) {\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }" if (parenthesized_expression "(0 < lVar57)" ( (binary_expression "0 < lVar57" number_literal < identifier) )) (compound_statement "{\n                    pvVar40 = (void *)xmalloc(lVar57);\n                    pcVar23 = (char *)paVar25;\n                    lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);\n                    free(pvVar40);\n                    if (lVar57 == 0) goto LAB_0010ae6f;\n                    local_110 = (asymbol **)0x0;\n                    goto LAB_0010b098;\n                  }" { (expression_statement "pvVar40 = (void *)xmalloc(lVar57);" (assignment_expression "pvVar40 = (void *)xmalloc(lVar57)" identifier = (cast_expression "(void *)xmalloc(lVar57)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar57)" identifier (argument_list "(lVar57)" ( identifier ))))) ;) (expression_statement "pcVar23 = (char *)paVar25;" (assignment_expression "pcVar23 = (char *)paVar25" identifier = (cast_expression "(char *)paVar25" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40);" (assignment_expression "lVar57 = bfd_canonicalize_reloc(ibfd,paVar25,pvVar40)" identifier = (call_expression "bfd_canonicalize_reloc(ibfd,paVar25,pvVar40)" identifier (argument_list "(ibfd,paVar25,pvVar40)" ( identifier , identifier , identifier )))) ;) (expression_statement "free(pvVar40);" (call_expression "free(pvVar40)" identifier (argument_list "(pvVar40)" ( identifier ))) ;) (if_statement "if (lVar57 == 0) goto LAB_0010ae6f;" if (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010ae6f;" goto statement_identifier ;)) (expression_statement "local_110 = (asymbol **)0x0;" (assignment_expression "local_110 = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;) })) (labeled_statement "LAB_0010ae6f:\n                  pcVar23 = (char *)0x48;" statement_identifier : (expression_statement "pcVar23 = (char *)0x48;" (assignment_expression "pcVar23 = (char *)0x48" identifier = (cast_expression "(char *)0x48" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc);" (assignment_expression "local_110 = (asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc)" identifier = (cast_expression "(asymbol **)xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc)" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xcalloc(uVar35 / 0xc,0x48,uVar35 % 0xc)" identifier (argument_list "(uVar35 / 0xc,0x48,uVar35 % 0xc)" ( (binary_expression "uVar35 / 0xc" identifier / number_literal) , number_literal , (binary_expression "uVar35 % 0xc" identifier % number_literal) ))))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = (void *)0x0;" (assignment_expression "local_b0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pbVar54 = (bfd_vma *)local_110;" (assignment_expression "pbVar54 = (bfd_vma *)local_110" identifier = (cast_expression "(bfd_vma *)local_110" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar68 = __dest_00;" (assignment_expression "pbVar68 = __dest_00" identifier = identifier) ;) (expression_statement "local_e8 = uVar35;" (assignment_expression "local_e8 = uVar35" identifier = identifier) ;) (while_statement "while (0xb < local_e8) {\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }" while (parenthesized_expression "(0xb < local_e8)" ( (binary_expression "0xb < local_e8" number_literal < identifier) )) (compound_statement "{\n                    bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);\n                    pbVar8 = ibfd->xvec;\n                    pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);\n                    *pbVar54 = (bfd_vma)pcVar23;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);\n                    pbVar8 = ibfd->xvec;\n                    uVar45 = bVar41 + 3 & 0xfffffffffffffffc;\n                    pbVar54[1] = uVar45;\n                    bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);\n                    pbVar54[2] = bVar41;\n                    if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    lVar57 = (long)&((asection *)pcVar23)->name + uVar45;\n                    uVar65 = lVar57 + 0xc;\n                    if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar2 = pbVar68 + 0xc + (long)pcVar23;\n                    pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);\n                    pbVar54[4] = (bfd_vma)pbVar2;\n                    local_e8 = local_e8 + (-0xc - lVar57);\n                    if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }\n                    if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }\n                    if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }\n                    if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    pbVar54 = pbVar54 + 9;\n                    pbVar68 = pbVar68 + uVar65;\n                  }" { (expression_statement "bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68);" (assignment_expression "bVar41 = (*ibfd->xvec->bfd_getx32)(pbVar68)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar68)" (parenthesized_expression "(*ibfd->xvec->bfd_getx32)" ( (pointer_expression "*ibfd->xvec->bfd_getx32" * (field_expression "ibfd->xvec->bfd_getx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar68)" ( identifier )))) ;) (expression_statement "pbVar8 = ibfd->xvec;" (assignment_expression "pbVar8 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (expression_statement "pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc);" (assignment_expression "pcVar23 = (char *)(bVar41 + 3 & 0xfffffffffffffffc)" identifier = (cast_expression "(char *)(bVar41 + 3 & 0xfffffffffffffffc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar41 + 3 & 0xfffffffffffffffc)" ( (binary_expression "bVar41 + 3 & 0xfffffffffffffffc" (binary_expression "bVar41 + 3" identifier + number_literal) & number_literal) )))) ;) (expression_statement "*pbVar54 = (bfd_vma)pcVar23;" (assignment_expression "*pbVar54 = (bfd_vma)pcVar23" (pointer_expression "*pbVar54" * identifier) = (cast_expression "(bfd_vma)pcVar23" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4);" (assignment_expression "bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 4)" identifier = (call_expression "(*pbVar8->bfd_getx32)(pbVar68 + 4)" (parenthesized_expression "(*pbVar8->bfd_getx32)" ( (pointer_expression "*pbVar8->bfd_getx32" * (field_expression "pbVar8->bfd_getx32" identifier -> field_identifier)) )) (argument_list "(pbVar68 + 4)" ( (binary_expression "pbVar68 + 4" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = ibfd->xvec;" (assignment_expression "pbVar8 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (expression_statement "uVar45 = bVar41 + 3 & 0xfffffffffffffffc;" (assignment_expression "uVar45 = bVar41 + 3 & 0xfffffffffffffffc" identifier = (binary_expression "bVar41 + 3 & 0xfffffffffffffffc" (binary_expression "bVar41 + 3" identifier + number_literal) & number_literal)) ;) (expression_statement "pbVar54[1] = uVar45;" (assignment_expression "pbVar54[1] = uVar45" (subscript_expression "pbVar54[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8);" (assignment_expression "bVar41 = (*pbVar8->bfd_getx32)(pbVar68 + 8)" identifier = (call_expression "(*pbVar8->bfd_getx32)(pbVar68 + 8)" (parenthesized_expression "(*pbVar8->bfd_getx32)" ( (pointer_expression "*pbVar8->bfd_getx32" * (field_expression "pbVar8->bfd_getx32" identifier -> field_identifier)) )) (argument_list "(pbVar68 + 8)" ( (binary_expression "pbVar68 + 8" identifier + number_literal) )))) ;) (expression_statement "pbVar54[2] = bVar41;" (assignment_expression "pbVar54[2] = bVar41" (subscript_expression "pbVar54[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < bVar41 - 0x100) {\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(1 < bVar41 - 0x100)" ( (binary_expression "1 < bVar41 - 0x100" number_literal < (binary_expression "bVar41 - 0x100" identifier - number_literal)) )) (compound_statement "{\n                      pcVar23 = "corrupt GNU build attribute note: wrong note type";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "corrupt GNU build attribute note: wrong note type";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: wrong note type"" identifier = (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "corrupt GNU build attribute note: wrong note type"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "lVar57 = (long)&((asection *)pcVar23)->name + uVar45;" (assignment_expression "lVar57 = (long)&((asection *)pcVar23)->name + uVar45" identifier = (binary_expression "(long)&((asection *)pcVar23)->name + uVar45" (cast_expression "(long)&((asection *)pcVar23)->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((asection *)pcVar23)->name" & (field_expression "((asection *)pcVar23)->name" (parenthesized_expression "((asection *)pcVar23)" ( (cast_expression "(asection *)pcVar23" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + identifier)) ;) (expression_statement "uVar65 = lVar57 + 0xc;" (assignment_expression "uVar65 = lVar57 + 0xc" identifier = (binary_expression "lVar57 + 0xc" identifier + number_literal)) ;) (if_statement "if (local_e8 < uVar65) {\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(local_e8 < uVar65)" ( (binary_expression "local_e8 < uVar65" identifier < identifier) )) (compound_statement "{\n                      pcVar23 = "corrupt GNU build attribute note: note too big";\n                      pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "corrupt GNU build attribute note: note too big";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: note too big"" identifier = (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (pcVar23 < (asection *)0x2) {\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(pcVar23 < (asection *)0x2)" ( (binary_expression "pcVar23 < (asection *)0x2" identifier < (cast_expression "(asection *)0x2" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar23 = "corrupt GNU build attribute note: name too small";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "corrupt GNU build attribute note: name too small";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: name too small"" identifier = (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "corrupt GNU build attribute note: name too small"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "pbVar2 = pbVar68 + 0xc + (long)pcVar23;" (assignment_expression "pbVar2 = pbVar68 + 0xc + (long)pcVar23" identifier = (binary_expression "pbVar68 + 0xc + (long)pcVar23" (binary_expression "pbVar68 + 0xc" identifier + number_literal) + (cast_expression "(long)pcVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "pbVar54[3] = (bfd_vma)(pbVar68 + 0xc);" (assignment_expression "pbVar54[3] = (bfd_vma)(pbVar68 + 0xc)" (subscript_expression "pbVar54[3]" identifier [ number_literal ]) = (call_expression "(bfd_vma)(pbVar68 + 0xc)" (parenthesized_expression "(bfd_vma)" ( identifier )) (argument_list "(pbVar68 + 0xc)" ( (binary_expression "pbVar68 + 0xc" identifier + number_literal) )))) ;) (expression_statement "pbVar54[4] = (bfd_vma)pbVar2;" (assignment_expression "pbVar54[4] = (bfd_vma)pbVar2" (subscript_expression "pbVar54[4]" identifier [ number_literal ]) = (cast_expression "(bfd_vma)pbVar2" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "local_e8 = local_e8 + (-0xc - lVar57);" (assignment_expression "local_e8 = local_e8 + (-0xc - lVar57)" identifier = (binary_expression "local_e8 + (-0xc - lVar57)" identifier + (parenthesized_expression "(-0xc - lVar57)" ( (binary_expression "-0xc - lVar57" number_literal - identifier) )))) ;) (if_statement "if (pbVar68[0xc] == '$') {\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }\n                    else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }" if (parenthesized_expression "(pbVar68[0xc] == '$')" ( (binary_expression "pbVar68[0xc] == '$'" (subscript_expression "pbVar68[0xc]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) )) (compound_statement "{\n                      if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }\n                    }" { (if_statement "if ((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')) {\n                        iVar17 = iVar17 + 1;\n                      }" if (parenthesized_expression "((pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1'))" ( (binary_expression "(pbVar68[0xd] == '\x01') && (pbVar68[0xe] == '1')" (parenthesized_expression "(pbVar68[0xd] == '\x01')" ( (binary_expression "pbVar68[0xd] == '\x01'" (subscript_expression "pbVar68[0xd]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(pbVar68[0xe] == '1')" ( (binary_expression "pbVar68[0xe] == '1'" (subscript_expression "pbVar68[0xe]" identifier [ number_literal ]) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n                        iVar17 = iVar17 + 1;\n                      }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }" else (if_statement "if ((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))) {\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }" if (parenthesized_expression "((((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01'))))))" ( (binary_expression "(((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')) &&\n                            ((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))" (parenthesized_expression "(((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G'))" ( (binary_expression "((asection *)0x4 < pcVar23) && (pbVar68[0xc] == 'G')" (parenthesized_expression "((asection *)0x4 < pcVar23)" ( (binary_expression "(asection *)0x4 < pcVar23" (cast_expression "(asection *)0x4" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) && (parenthesized_expression "(pbVar68[0xc] == 'G')" ( (binary_expression "pbVar68[0xc] == 'G'" (subscript_expression "pbVar68[0xc]" identifier [ number_literal ]) == (char_literal "'G'" ' character ')) ))) )) && (parenthesized_expression "((pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))))" ( (parenthesized_expression "(pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01'))))" ( (binary_expression "pbVar68[0xd] == 'A' &&\n                             ((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))" (binary_expression "pbVar68[0xd] == 'A'" (subscript_expression "pbVar68[0xd]" identifier [ number_literal ]) == (char_literal "'A'" ' character ')) && (parenthesized_expression "((pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')))" ( (parenthesized_expression "(pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01'))" ( (binary_expression "pbVar68[0xe] == '$' && (pbVar68[0xf] == '\x01')" (binary_expression "pbVar68[0xe] == '$'" (subscript_expression "pbVar68[0xe]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(pbVar68[0xf] == '\x01')" ( (binary_expression "pbVar68[0xf] == '\x01'" (subscript_expression "pbVar68[0xf]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) ))) )) (compound_statement "{\n                      if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }\n                    }" { (if_statement "if (pbVar68[0x10] == '2') {\n                        iVar22 = iVar22 + 1;\n                      }\n                      else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }" if (parenthesized_expression "(pbVar68[0x10] == '2')" ( (binary_expression "pbVar68[0x10] == '2'" (subscript_expression "pbVar68[0x10]" identifier [ number_literal ]) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n                        iVar22 = iVar22 + 1;\n                      }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }" else (compound_statement "{\n                        if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }\n                        iVar20 = iVar20 + 1;\n                      }" { (if_statement "if (pbVar68[0x10] != '3') {\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }" if (parenthesized_expression "(pbVar68[0x10] != '3')" ( (binary_expression "pbVar68[0x10] != '3'" (subscript_expression "pbVar68[0x10]" identifier [ number_literal ]) != (char_literal "'3'" ' character ')) )) (compound_statement "{\n                          pcVar23 = "corrupt GNU build attribute note: unsupported version";\n                          pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);\n                          goto LAB_0010b063;\n                        }" { (expression_statement "pcVar23 = "corrupt GNU build attribute note: unsupported version";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: unsupported version"" identifier = (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "corrupt GNU build attribute note: unsupported version"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) }))) })))) (if_statement "if (uVar45 == 4) {\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }\n                    else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" if (parenthesized_expression "(uVar45 == 4)" ( (binary_expression "uVar45 == 4" identifier == number_literal) )) (compound_statement "{\n                      bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);\n                      pvVar40 = (void *)0xffffffffffffffff;\n                    }" { (expression_statement "bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2);" (assignment_expression "bVar42 = (*ibfd->xvec->bfd_getx32)(pbVar2)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar2)" (parenthesized_expression "(*ibfd->xvec->bfd_getx32)" ( (pointer_expression "*ibfd->xvec->bfd_getx32" * (field_expression "ibfd->xvec->bfd_getx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "pvVar40 = (void *)0xffffffffffffffff;" (assignment_expression "pvVar40 = (void *)0xffffffffffffffff" identifier = (cast_expression "(void *)0xffffffffffffffff" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" else (if_statement "if (uVar45 < 5) {\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }\n                    else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" if (parenthesized_expression "(uVar45 < 5)" ( (binary_expression "uVar45 < 5" identifier < number_literal) )) (compound_statement "{\n                      if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }\n                      pvVar40 = (void *)0x0;\n                      bVar42 = 0;\n                    }" { (if_statement "if (uVar45 != 0) {\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }" if (parenthesized_expression "(uVar45 != 0)" ( (binary_expression "uVar45 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";\n                        pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);\n                        goto LAB_0010b063;\n                      }" { (labeled_statement "LAB_0010b046:\n                        pcVar23 = "corrupt GNU build attribute note: bad description size";" statement_identifier : (expression_statement "pcVar23 = "corrupt GNU build attribute note: bad description size";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: bad description size"" identifier = (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ")) ;)) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "corrupt GNU build attribute note: bad description size"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "pvVar40 = (void *)0x0;" (assignment_expression "pvVar40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar42 = 0;" (assignment_expression "bVar42 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" else (if_statement "if (uVar45 == 8) {\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }\n                    else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" if (parenthesized_expression "(uVar45 == 8)" ( (binary_expression "uVar45 == 8" identifier == number_literal) )) (compound_statement "{\n                      pbVar8 = ibfd->xvec;\n                      if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }\n                    }" { (expression_statement "pbVar8 = ibfd->xvec;" (assignment_expression "pbVar8 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (if_statement "if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }\n                      else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }" if (parenthesized_expression "((pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'))" ( (binary_expression "(pbVar8->flavour == bfd_target_elf_flavour) &&\n                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" (parenthesized_expression "(pbVar8->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar8->flavour == bfd_target_elf_flavour" (field_expression "pbVar8->flavour" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" ( (binary_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header" (parenthesized_expression "((ibfd->tdata).elf_obj_data)" ( (field_expression "(ibfd->tdata).elf_obj_data" (parenthesized_expression "(ibfd->tdata)" ( (field_expression "ibfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                        bVar42 = (*pbVar8->bfd_getx64)(pbVar2);\n                        pvVar40 = (void *)0xffffffffffffffff;\n                      }" { (expression_statement "bVar42 = (*pbVar8->bfd_getx64)(pbVar2);" (assignment_expression "bVar42 = (*pbVar8->bfd_getx64)(pbVar2)" identifier = (call_expression "(*pbVar8->bfd_getx64)(pbVar2)" (parenthesized_expression "(*pbVar8->bfd_getx64)" ( (pointer_expression "*pbVar8->bfd_getx64" * (field_expression "pbVar8->bfd_getx64" identifier -> field_identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "pvVar40 = (void *)0xffffffffffffffff;" (assignment_expression "pvVar40 = (void *)0xffffffffffffffff" identifier = (cast_expression "(void *)0xffffffffffffffff" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }" else (compound_statement "{\n                        bVar42 = (*pbVar8->bfd_getx32)(pbVar2);\n                        pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);\n                      }" { (expression_statement "bVar42 = (*pbVar8->bfd_getx32)(pbVar2);" (assignment_expression "bVar42 = (*pbVar8->bfd_getx32)(pbVar2)" identifier = (call_expression "(*pbVar8->bfd_getx32)(pbVar2)" (parenthesized_expression "(*pbVar8->bfd_getx32)" ( (pointer_expression "*pbVar8->bfd_getx32" * (field_expression "pbVar8->bfd_getx32" identifier -> field_identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4);" (assignment_expression "pvVar40 = (void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4)" identifier = (cast_expression "(void *)(*ibfd->xvec->bfd_getx32)(pbVar2 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar2 + 4)" (parenthesized_expression "(*ibfd->xvec->bfd_getx32)" ( (pointer_expression "*ibfd->xvec->bfd_getx32" * (field_expression "ibfd->xvec->bfd_getx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar2 + 4)" ( (binary_expression "pbVar2 + 4" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" else (compound_statement "{\n                      if (uVar45 != 0x10) goto LAB_0010b046;\n                      bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);\n                      pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);\n                    }" { (if_statement "if (uVar45 != 0x10) goto LAB_0010b046;" if (parenthesized_expression "(uVar45 != 0x10)" ( (binary_expression "uVar45 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0010b046;" goto statement_identifier ;)) (expression_statement "bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2);" (assignment_expression "bVar42 = (*ibfd->xvec->bfd_getx64)(pbVar2)" identifier = (call_expression "(*ibfd->xvec->bfd_getx64)(pbVar2)" (parenthesized_expression "(*ibfd->xvec->bfd_getx64)" ( (pointer_expression "*ibfd->xvec->bfd_getx64" * (field_expression "ibfd->xvec->bfd_getx64" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (expression_statement "pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8);" (assignment_expression "pvVar40 = (void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8)" identifier = (cast_expression "(void *)(*ibfd->xvec->bfd_getx64)(pbVar2 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*ibfd->xvec->bfd_getx64)(pbVar2 + 8)" (parenthesized_expression "(*ibfd->xvec->bfd_getx64)" ( (pointer_expression "*ibfd->xvec->bfd_getx64" * (field_expression "ibfd->xvec->bfd_getx64" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar2 + 8)" ( (binary_expression "pbVar2 + 8" identifier + number_literal) ))))) ;) }))))))) (if_statement "if (bVar41 == 0x100) {\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }\n                    else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }" if (parenthesized_expression "(bVar41 == 0x100)" ( (binary_expression "bVar41 == 0x100" identifier == number_literal) )) (compound_statement "{\n                      if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_c8 = bVar42;\n                      local_c0 = (bfd_vma)pvVar40;\n                    }" { (if_statement "if (bVar42 == 0) {\n                        bVar42 = local_c8;\n                      }" if (parenthesized_expression "(bVar42 == 0)" ( (binary_expression "bVar42 == 0" identifier == number_literal) )) (compound_statement "{\n                        bVar42 = local_c8;\n                      }" { (expression_statement "bVar42 = local_c8;" (assignment_expression "bVar42 = local_c8" identifier = identifier) ;) })) (if_statement "if (pvVar40 == (void *)0x0) {\n                        pvVar40 = (void *)local_c0;\n                      }" if (parenthesized_expression "(pvVar40 == (void *)0x0)" ( (binary_expression "pvVar40 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        pvVar40 = (void *)local_c0;\n                      }" { (expression_statement "pvVar40 = (void *)local_c0;" (assignment_expression "pvVar40 = (void *)local_c0" identifier = (cast_expression "(void *)local_c0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pbVar54[6] = bVar42;" (assignment_expression "pbVar54[6] = bVar42" (subscript_expression "pbVar54[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar54[7] = (bfd_vma)pvVar40;" (assignment_expression "pbVar54[7] = (bfd_vma)pvVar40" (subscript_expression "pbVar54[7]" identifier [ number_literal ]) = (cast_expression "(bfd_vma)pvVar40" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = bVar42;" (assignment_expression "local_c8 = bVar42" identifier = identifier) ;) (expression_statement "local_c0 = (bfd_vma)pvVar40;" (assignment_expression "local_c0 = (bfd_vma)pvVar40" identifier = (cast_expression "(bfd_vma)pvVar40" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }" else (compound_statement "{\n                      if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }\n                      if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }\n                      pbVar54[6] = bVar42;\n                      pbVar54[7] = (bfd_vma)pvVar40;\n                      local_b8 = bVar42;\n                      local_b0 = pvVar40;\n                    }" { (if_statement "if (bVar42 == 0) {\n                        bVar42 = local_b8;\n                      }" if (parenthesized_expression "(bVar42 == 0)" ( (binary_expression "bVar42 == 0" identifier == number_literal) )) (compound_statement "{\n                        bVar42 = local_b8;\n                      }" { (expression_statement "bVar42 = local_b8;" (assignment_expression "bVar42 = local_b8" identifier = identifier) ;) })) (if_statement "if (pvVar40 == (void *)0x0) {\n                        pvVar40 = local_b0;\n                      }" if (parenthesized_expression "(pvVar40 == (void *)0x0)" ( (binary_expression "pvVar40 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        pvVar40 = local_b0;\n                      }" { (expression_statement "pvVar40 = local_b0;" (assignment_expression "pvVar40 = local_b0" identifier = identifier) ;) })) (expression_statement "pbVar54[6] = bVar42;" (assignment_expression "pbVar54[6] = bVar42" (subscript_expression "pbVar54[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar54[7] = (bfd_vma)pvVar40;" (assignment_expression "pbVar54[7] = (bfd_vma)pvVar40" (subscript_expression "pbVar54[7]" identifier [ number_literal ]) = (cast_expression "(bfd_vma)pvVar40" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "local_b8 = bVar42;" (assignment_expression "local_b8 = bVar42" identifier = identifier) ;) (expression_statement "local_b0 = pvVar40;" (assignment_expression "local_b0 = pvVar40" identifier = identifier) ;) }))) (if_statement "if (*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0') {\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0')" ( (binary_expression "*(char *)((pbVar54[3] - 1) + *pbVar54) != '\0'" (pointer_expression "*(char *)((pbVar54[3] - 1) + *pbVar54)" * (cast_expression "(char *)((pbVar54[3] - 1) + *pbVar54)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pbVar54[3] - 1) + *pbVar54)" ( (binary_expression "(pbVar54[3] - 1) + *pbVar54" (parenthesized_expression "(pbVar54[3] - 1)" ( (binary_expression "pbVar54[3] - 1" (subscript_expression "pbVar54[3]" identifier [ number_literal ]) - number_literal) )) + (pointer_expression "*pbVar54" * identifier)) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "corrupt GNU build attribute note: name not NUL terminated";" (assignment_expression "pcVar23 = "corrupt GNU build attribute note: name not NUL terminated"" identifier = (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "corrupt GNU build attribute note: name not NUL terminated"\n                                                  ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "pbVar54 = pbVar54 + 9;" (assignment_expression "pbVar54 = pbVar54 + 9" identifier = (binary_expression "pbVar54 + 9" identifier + number_literal)) ;) (expression_statement "pbVar68 = pbVar68 + uVar65;" (assignment_expression "pbVar68 = pbVar68 + uVar65" identifier = (binary_expression "pbVar68 + uVar65" identifier + identifier)) ;) })) (if_statement "if (local_e8 == 0) {\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }\n                  else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }" if (parenthesized_expression "(local_e8 == 0)" ( (binary_expression "local_e8 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;\n                    uVar47 = -(uint)(iVar17 == 0) & 2;\n                    lVar57 = (long)(int)(uVar47 + 1);\n                    if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }\n                    iVar17 = uVar47 + 2;\n                    bVar69 = false;\n                    lVar30 = (long)iVar17;\n                    pbVar67 = (bfd_vma *)local_110;\nLAB_0010b255:\n                    pbVar13 = pbVar67;\n                    pbVar67 = pbVar13 + 9;\n                    if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }\n                    if (!bVar69) goto LAB_0010b098;\n                    paVar43 = (asection *)xmalloc(uVar35);\n                    bVar41 = 0;\n                    local_f0 = __dest_00;\n                    paVar33 = paVar43;\n                    for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }\n                    sVar31 = (long)paVar33 - (long)paVar43;\n                    pcVar23 = (char *)paVar43;\n                    memcpy(__dest_00,paVar43,sVar31);\n                    free(paVar43);\n                    free(local_110);\n                    merged_size = sVar31;\n                    if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }\n                  }" { (if_statement "if (iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)) {\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(iVar17 == 0 && (iVar22 == 0 && iVar20 == 0))" ( (binary_expression "iVar17 == 0 && (iVar22 == 0 && iVar20 == 0)" (binary_expression "iVar17 == 0" identifier == number_literal) && (parenthesized_expression "(iVar22 == 0 && iVar20 == 0)" ( (binary_expression "iVar22 == 0 && iVar20 == 0" (binary_expression "iVar22 == 0" identifier == number_literal) && (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                      pcVar23 = "bad GNU build attribute notes: no known versions detected";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "bad GNU build attribute notes: no known versions detected";" (assignment_expression "pcVar23 = "bad GNU build attribute notes: no known versions detected"" identifier = (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "bad GNU build attribute notes: no known versions detected"\n                                                  ,5)" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))) {\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0))))" ( (binary_expression "((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)) ||\n                       ((iVar22 != 0 && (iVar20 != 0)))" (parenthesized_expression "((iVar17 != 0) && (iVar22 != 0 || iVar20 != 0))" ( (binary_expression "(iVar17 != 0) && (iVar22 != 0 || iVar20 != 0)" (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar22 != 0 || iVar20 != 0)" ( (binary_expression "iVar22 != 0 || iVar20 != 0" (binary_expression "iVar22 != 0" identifier != number_literal) || (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar22 != 0 && (iVar20 != 0)))" ( (parenthesized_expression "(iVar22 != 0 && (iVar20 != 0))" ( (binary_expression "iVar22 != 0 && (iVar20 != 0)" (binary_expression "iVar22 != 0" identifier != number_literal) && (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                      pcVar23 = "bad GNU build attribute notes: multiple different versions";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "bad GNU build attribute notes: multiple different versions";" (assignment_expression "pcVar23 = "bad GNU build attribute notes: multiple different versions"" identifier = (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "bad GNU build attribute notes: multiple different versions"\n                                                  ,5)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if ((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)) goto LAB_0010b098;" if (parenthesized_expression "((iVar17 == 1 || iVar22 == 1) || (iVar20 == 1))" ( (binary_expression "(iVar17 == 1 || iVar22 == 1) || (iVar20 == 1)" (parenthesized_expression "(iVar17 == 1 || iVar22 == 1)" ( (binary_expression "iVar17 == 1 || iVar22 == 1" (binary_expression "iVar17 == 1" identifier == number_literal) || (binary_expression "iVar22 == 1" identifier == number_literal)) )) || (parenthesized_expression "(iVar20 == 1)" ( (binary_expression "iVar20 == 1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "uVar47 = -(uint)(iVar17 == 0) & 2;" (assignment_expression "uVar47 = -(uint)(iVar17 == 0) & 2" identifier = (binary_expression "-(uint)(iVar17 == 0) & 2" (unary_expression "-(uint)(iVar17 == 0)" - (call_expression "(uint)(iVar17 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "lVar57 = (long)(int)(uVar47 + 1);" (assignment_expression "lVar57 = (long)(int)(uVar47 + 1)" identifier = (cast_expression "(long)(int)(uVar47 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar47 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar47 + 1)" ( (binary_expression "uVar47 + 1" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)((long)local_110[3] + lVar57) != '\x01') {\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(*(char *)((long)local_110[3] + lVar57) != '\x01')" ( (binary_expression "*(char *)((long)local_110[3] + lVar57) != '\x01'" (pointer_expression "*(char *)((long)local_110[3] + lVar57)" * (cast_expression "(char *)((long)local_110[3] + lVar57)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_110[3] + lVar57)" ( (binary_expression "(long)local_110[3] + lVar57" (cast_expression "(long)local_110[3]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_110[3]" identifier [ number_literal ])) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                      pcVar23 = "bad GNU build attribute notes: first note not version note";\n                      pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);\n                      goto LAB_0010b063;\n                    }" { (expression_statement "pcVar23 = "bad GNU build attribute notes: first note not version note";" (assignment_expression "pcVar23 = "bad GNU build attribute notes: first note not version note"" identifier = (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "bad GNU build attribute notes: first note not version note"\n                                                  ,5)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal ))))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar17 = uVar47 + 2;" (assignment_expression "iVar17 = uVar47 + 2" identifier = (binary_expression "uVar47 + 2" identifier + number_literal)) ;) (expression_statement "bVar69 = false;" (assignment_expression "bVar69 = false" identifier = false) ;) (expression_statement "lVar30 = (long)iVar17;" (assignment_expression "lVar30 = (long)iVar17" identifier = (cast_expression "(long)iVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pbVar67 = (bfd_vma *)local_110;" (assignment_expression "pbVar67 = (bfd_vma *)local_110" identifier = (cast_expression "(bfd_vma *)local_110" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0010b255:\n                    pbVar13 = pbVar67;" statement_identifier : (expression_statement "pbVar13 = pbVar67;" (assignment_expression "pbVar13 = pbVar67" identifier = identifier) ;)) (expression_statement "pbVar67 = pbVar13 + 9;" (assignment_expression "pbVar67 = pbVar13 + 9" identifier = (binary_expression "pbVar13 + 9" identifier + number_literal)) ;) (if_statement "if (pbVar67 < pbVar54) {\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }" if (parenthesized_expression "(pbVar67 < pbVar54)" ( (binary_expression "pbVar67 < pbVar54" identifier < identifier) )) (compound_statement "{\n                      if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0010b255;\n                    }" { (if_statement "if (pbVar13[0xb] == 0x100) {\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(pbVar13[0xb] == 0x100)" ( (binary_expression "pbVar13[0xb] == 0x100" (subscript_expression "pbVar13[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                        pcVar23 = (char *)pbVar13[0xc];\n                        pbVar55 = (bfd_vma *)0x0;\n                        for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }\n                      }" { (expression_statement "pcVar23 = (char *)pbVar13[0xc];" (assignment_expression "pcVar23 = (char *)pbVar13[0xc]" identifier = (cast_expression "(char *)pbVar13[0xc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pbVar13[0xc]" identifier [ number_literal ]))) ;) (expression_statement "pbVar55 = (bfd_vma *)0x0;" (assignment_expression "pbVar55 = (bfd_vma *)0x0" identifier = (cast_expression "(bfd_vma *)0x0" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (pbVar50 = pbVar13; local_110 <= pbVar50; pbVar50 = pbVar50 + -9) {\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }" for ( (assignment_expression "pbVar50 = pbVar13" identifier = identifier) ; (binary_expression "local_110 <= pbVar50" identifier <= identifier) ; (assignment_expression "pbVar50 = pbVar50 + -9" identifier = (binary_expression "pbVar50 + -9" identifier + number_literal)) ) (compound_statement "{\n                          pvVar40 = (void *)pbVar50[3];\n                          pbVar56 = pbVar55;\n                          if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }\n                        }" { (expression_statement "pvVar40 = (void *)pbVar50[3];" (assignment_expression "pvVar40 = (void *)pbVar50[3]" identifier = (cast_expression "(void *)pbVar50[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pbVar50[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar56 = pbVar55;" (assignment_expression "pbVar56 = pbVar55" identifier = identifier) ;) (if_statement "if ((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))) {\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }" if (parenthesized_expression "((((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100))))" ( (binary_expression "(((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)) &&\n                             ((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))" (parenthesized_expression "(((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101))" ( (binary_expression "((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)) ||\n                              (pbVar56 = pbVar50, pbVar50[2] != 0x101)" (parenthesized_expression "((pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0))" ( (binary_expression "(pbVar55 != (bfd_vma *)0x0) || (pbVar50[1] == 0)" (parenthesized_expression "(pbVar55 != (bfd_vma *)0x0)" ( (binary_expression "pbVar55 != (bfd_vma *)0x0" identifier != (cast_expression "(bfd_vma *)0x0" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar50[1] == 0)" ( (binary_expression "pbVar50[1] == 0" (subscript_expression "pbVar50[1]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(pbVar56 = pbVar50, pbVar50[2] != 0x101)" ( (comma_expression "pbVar56 = pbVar50, pbVar50[2] != 0x101" (assignment_expression "pbVar56 = pbVar50" identifier = identifier) , (binary_expression "pbVar50[2] != 0x101" (subscript_expression "pbVar50[2]" identifier [ number_literal ]) != number_literal)) ))) )) && (parenthesized_expression "((pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)))" ( (parenthesized_expression "(pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100))" ( (comma_expression "pbVar55 = pbVar56,\n                              *(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)" (assignment_expression "pbVar55 = pbVar56" identifier = identifier) , (binary_expression "*(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57) && (pbVar50[2] == 0x100)" (binary_expression "*(char *)((long)&((asection *)pcVar23)->name + lVar57) ==\n                              *(char *)((long)pvVar40 + lVar57)" (pointer_expression "*(char *)((long)&((asection *)pcVar23)->name + lVar57)" * (cast_expression "(char *)((long)&((asection *)pcVar23)->name + lVar57)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((asection *)pcVar23)->name + lVar57)" ( (binary_expression "(long)&((asection *)pcVar23)->name + lVar57" (cast_expression "(long)&((asection *)pcVar23)->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((asection *)pcVar23)->name" & (field_expression "((asection *)pcVar23)->name" (parenthesized_expression "((asection *)pcVar23)" ( (cast_expression "(asection *)pcVar23" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + identifier) )))) == (pointer_expression "*(char *)((long)pvVar40 + lVar57)" * (cast_expression "(char *)((long)pvVar40 + lVar57)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar40 + lVar57)" ( (binary_expression "(long)pvVar40 + lVar57" (cast_expression "(long)pvVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) && (parenthesized_expression "(pbVar50[2] == 0x100)" ( (binary_expression "pbVar50[2] == 0x100" (subscript_expression "pbVar50[2]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n                            if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }\n                            uVar45 = 0;\n                            for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            bVar41 = *pbVar50;\n                            uVar66 = 0;\n                            for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }\n                            uVar44 = 0;\n                            uVar45 = uVar45 + uVar66;\n                            for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }\n                            if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }\n                          }" { (if_statement "if (*(char *)((long)pvVar40 + lVar57) != '\x04') {\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }" if (parenthesized_expression "(*(char *)((long)pvVar40 + lVar57) != '\x04')" ( (binary_expression "*(char *)((long)pvVar40 + lVar57) != '\x04'" (pointer_expression "*(char *)((long)pvVar40 + lVar57)" * (cast_expression "(char *)((long)pvVar40 + lVar57)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar40 + lVar57)" ( (binary_expression "(long)pvVar40 + lVar57" (cast_expression "(long)pvVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                              if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }\n                              break;\n                            }" { (if_statement "if ((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))) {\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }\n                              else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }" if (parenthesized_expression "((((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0)))))" ( (binary_expression "(((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))) &&\n                                 ((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))" (parenthesized_expression "(((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0))))" ( (binary_expression "((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)) &&\n                                  ((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))" (parenthesized_expression "((*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0))" ( (binary_expression "(*pbVar50 == *pbVar67) &&\n                                   (iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)" (parenthesized_expression "(*pbVar50 == *pbVar67)" ( (binary_expression "*pbVar50 == *pbVar67" (pointer_expression "*pbVar50" * identifier) == (pointer_expression "*pbVar67" * identifier)) )) && (parenthesized_expression "(iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0)" ( (comma_expression "iVar22 = memcmp(pvVar40,pcVar23,*pbVar50), iVar22 == 0" (assignment_expression "iVar22 = memcmp(pvVar40,pcVar23,*pbVar50)" identifier = (call_expression "memcmp(pvVar40,pcVar23,*pbVar50)" identifier (argument_list "(pvVar40,pcVar23,*pbVar50)" ( identifier , identifier , (pointer_expression "*pbVar50" * identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)))" ( (parenthesized_expression "(uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0))" ( (comma_expression "uVar45 = pbVar50[7], uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)" (assignment_expression "uVar45 = pbVar50[7]" identifier = (subscript_expression "pbVar50[7]" identifier [ number_literal ])) , (binary_expression "uVar45 != 0 &&\n                                   (uVar65 = pbVar13[0x10], uVar65 != 0)" (binary_expression "uVar45 != 0" identifier != number_literal) && (parenthesized_expression "(uVar65 = pbVar13[0x10], uVar65 != 0)" ( (comma_expression "uVar65 = pbVar13[0x10], uVar65 != 0" (assignment_expression "uVar65 = pbVar13[0x10]" identifier = (subscript_expression "pbVar13[0x10]" identifier [ number_literal ])) , (binary_expression "uVar65 != 0" identifier != number_literal)) )))) )) ))) )) && (parenthesized_expression "((0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))))" ( (parenthesized_expression "(0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0)))" ( (binary_expression "0xfffffffffffffff0 < uVar45 ||\n                                  (pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))" (binary_expression "0xfffffffffffffff0 < uVar45" number_literal < identifier) || (parenthesized_expression "(pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0))" ( (binary_expression "pbVar13[0xf] <= (uVar45 + 0xf & 0xfffffffffffffff0)" (subscript_expression "pbVar13[0xf]" identifier [ number_literal ]) <= (parenthesized_expression "(uVar45 + 0xf & 0xfffffffffffffff0)" ( (binary_expression "uVar45 + 0xf & 0xfffffffffffffff0" (binary_expression "uVar45 + 0xf" identifier + number_literal) & number_literal) ))) ))) )) ))) )) (compound_statement "{\n                                pbVar13[0xb] = 0;\n                                if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }\n                                bVar69 = true;\n                                if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }\n                              }" { (expression_statement "pbVar13[0xb] = 0;" (assignment_expression "pbVar13[0xb] = 0" (subscript_expression "pbVar13[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar45 < uVar65) {\n                                  pbVar50[7] = uVar65;\n                                }" if (parenthesized_expression "(uVar45 < uVar65)" ( (binary_expression "uVar45 < uVar65" identifier < identifier) )) (compound_statement "{\n                                  pbVar50[7] = uVar65;\n                                }" { (expression_statement "pbVar50[7] = uVar65;" (assignment_expression "pbVar50[7] = uVar65" (subscript_expression "pbVar50[7]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "bVar69 = true;" (assignment_expression "bVar69 = true" identifier = true) ;) (if_statement "if (iVar20 != 0) {\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                                  *(undefined4 *)(pbVar50 + 8) = 1;\n                                }" { (expression_statement "*(undefined4 *)(pbVar50 + 8) = 1;" (assignment_expression "*(undefined4 *)(pbVar50 + 8) = 1" (pointer_expression "*(undefined4 *)(pbVar50 + 8)" * (cast_expression "(undefined4 *)(pbVar50 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar50 + 8)" ( (binary_expression "pbVar50 + 8" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }" else (if_statement "if (iVar20 == 0) {\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }\n                              else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                                if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }\n                              }" { (if_statement "if (((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)) {\n                                  pbVar56[2] = 0x100;\n                                }" if (parenthesized_expression "(((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0))" ( (binary_expression "((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)) &&\n                                   (pbVar56[2] == 0)" (parenthesized_expression "((pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0))" ( (binary_expression "(pbVar13[10] == 0) && (pbVar56 != (bfd_vma *)0x0)" (parenthesized_expression "(pbVar13[10] == 0)" ( (binary_expression "pbVar13[10] == 0" (subscript_expression "pbVar13[10]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(pbVar56 != (bfd_vma *)0x0)" ( (binary_expression "pbVar56 != (bfd_vma *)0x0" identifier != (cast_expression "(bfd_vma *)0x0" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pbVar56[2] == 0)" ( (binary_expression "pbVar56[2] == 0" (subscript_expression "pbVar56[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                                  pbVar56[2] = 0x100;\n                                }" { (expression_statement "pbVar56[2] = 0x100;" (assignment_expression "pbVar56[2] = 0x100" (subscript_expression "pbVar56[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }" else (compound_statement "{\n                                *(undefined4 *)(pbVar13 + 0x11) = 1;\n                                pbVar13[0xb] = 0x101;\n                                *(undefined4 *)(pbVar50 + 8) = 1;\n                                pbVar50[2] = 0x101;\n                              }" { (expression_statement "*(undefined4 *)(pbVar13 + 0x11) = 1;" (assignment_expression "*(undefined4 *)(pbVar13 + 0x11) = 1" (pointer_expression "*(undefined4 *)(pbVar13 + 0x11)" * (cast_expression "(undefined4 *)(pbVar13 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x11)" ( (binary_expression "pbVar13 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar13[0xb] = 0x101;" (assignment_expression "pbVar13[0xb] = 0x101" (subscript_expression "pbVar13[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(pbVar50 + 8) = 1;" (assignment_expression "*(undefined4 *)(pbVar50 + 8) = 1" (pointer_expression "*(undefined4 *)(pbVar50 + 8)" * (cast_expression "(undefined4 *)(pbVar50 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar50 + 8)" ( (binary_expression "pbVar50 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar50[2] = 0x101;" (assignment_expression "pbVar50[2] = 0x101" (subscript_expression "pbVar50[2]" identifier [ number_literal ]) = number_literal) ;) }))))) (break_statement "break;" break ;) })) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (for_statement "for (uVar65 = 0; (uint)((int)*pbVar67 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }" for ( (assignment_expression "uVar65 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)*pbVar67 - iVar17) != uVar65" (call_expression "(uint)((int)*pbVar67 - iVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*pbVar67 - iVar17)" ( (binary_expression "(int)*pbVar67 - iVar17" (cast_expression "(int)*pbVar67" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar67" * identifier)) - identifier) ))) != identifier) ; (assignment_expression "uVar65 = uVar65 + 1" identifier = (binary_expression "uVar65 + 1" identifier + number_literal)) ) (compound_statement "{\n                              uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }" { (expression_statement "uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU);" (assignment_expression "uVar45 = uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" identifier = (binary_expression "uVar45 | (ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30) <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" (binary_expression "(ulong)*(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30)" ( (binary_expression "(long)&((asection *)pcVar23)->name\n                                                                + uVar65 + lVar30" (binary_expression "(long)&((asection *)pcVar23)->name\n                                                                + uVar65" (cast_expression "(long)&((asection *)pcVar23)->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((asection *)pcVar23)->name" & (field_expression "((asection *)pcVar23)->name" (parenthesized_expression "((asection *)pcVar23)" ( (cast_expression "(asection *)pcVar23" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + identifier) + identifier) )))) << (parenthesized_expression "((char)uVar65 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar65 * '\b' & 0x3fU" (binary_expression "(char)uVar65 * '\b'" (cast_expression "(char)uVar65" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "bVar41 = *pbVar50;" (assignment_expression "bVar41 = *pbVar50" identifier = (pointer_expression "*pbVar50" * identifier)) ;) (expression_statement "uVar66 = 0;" (assignment_expression "uVar66 = 0" identifier = number_literal) ;) (for_statement "for (uVar65 = 0; (uint)((int)bVar41 - iVar17) != uVar65;\n                                uVar65 = uVar65 + 1) {\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }" for ( (assignment_expression "uVar65 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)bVar41 - iVar17) != uVar65" (call_expression "(uint)((int)bVar41 - iVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bVar41 - iVar17)" ( (binary_expression "(int)bVar41 - iVar17" (cast_expression "(int)bVar41" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) != identifier) ; (assignment_expression "uVar65 = uVar65 + 1" identifier = (binary_expression "uVar65 + 1" identifier + number_literal)) ) (compound_statement "{\n                              uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);\n                            }" { (expression_statement "uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU);" (assignment_expression "uVar66 = uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" identifier = (binary_expression "uVar66 | (ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65] <<\n                                                ((char)uVar65 * '\b' & 0x3fU)" (subscript_expression "(ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )[uVar65]" (call_expression "(ulong)(byte)((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((long)pvVar40 + lVar30)\n                                                             )" ( (cast_expression "(undefined1 *)((long)pvVar40 + lVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar40 + lVar30)" ( (binary_expression "(long)pvVar40 + lVar30" (cast_expression "(long)pvVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) ))) [ identifier ]) << (parenthesized_expression "((char)uVar65 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar65 * '\b' & 0x3fU" (binary_expression "(char)uVar65 * '\b'" (cast_expression "(char)uVar65" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = uVar45 + uVar66;" (assignment_expression "uVar45 = uVar45 + uVar66" identifier = (binary_expression "uVar45 + uVar66" identifier + identifier)) ;) (for_statement "for (uVar65 = uVar45; uVar65 != 0; uVar65 = uVar65 >> 8) {\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }" for ( (assignment_expression "uVar65 = uVar45" identifier = identifier) ; (binary_expression "uVar65 != 0" identifier != number_literal) ; (assignment_expression "uVar65 = uVar65 >> 8" identifier = (binary_expression "uVar65 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                              uVar44 = (ulong)((int)uVar44 + 1);\n                            }" { (expression_statement "uVar44 = (ulong)((int)uVar44 + 1);" (assignment_expression "uVar44 = (ulong)((int)uVar44 + 1)" identifier = (call_expression "(ulong)((int)uVar44 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar44 + 1)" ( (binary_expression "(int)uVar44 + 1" (cast_expression "(int)uVar44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (if_statement "if (uVar44 < bVar41 - lVar30) {\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }" if (parenthesized_expression "(uVar44 < bVar41 - lVar30)" ( (binary_expression "uVar44 < bVar41 - lVar30" identifier < (binary_expression "bVar41 - lVar30" identifier - identifier)) )) (compound_statement "{\n                              puVar46 = (undefined1 *)((long)pvVar40 + lVar30);\n                              goto LAB_0010b3bc;\n                            }" { (expression_statement "puVar46 = (undefined1 *)((long)pvVar40 + lVar30);" (assignment_expression "puVar46 = (undefined1 *)((long)pvVar40 + lVar30)" identifier = (cast_expression "(undefined1 *)((long)pvVar40 + lVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar40 + lVar30)" ( (binary_expression "(long)pvVar40 + lVar30" (cast_expression "(long)pvVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) })) })) })) })) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) })) (if_statement "if (!bVar69) goto LAB_0010b098;" if (parenthesized_expression "(!bVar69)" ( (unary_expression "!bVar69" ! identifier) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "paVar43 = (asection *)xmalloc(uVar35);" (assignment_expression "paVar43 = (asection *)xmalloc(uVar35)" identifier = (cast_expression "(asection *)xmalloc(uVar35)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar35)" identifier (argument_list "(uVar35)" ( identifier ))))) ;) (expression_statement "bVar41 = 0;" (assignment_expression "bVar41 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = __dest_00;" (assignment_expression "local_f0 = __dest_00" identifier = identifier) ;) (expression_statement "paVar33 = paVar43;" (assignment_expression "paVar33 = paVar43" identifier = identifier) ;) (for_statement "for (pbVar67 = (bfd_vma *)local_110; pbVar67 < pbVar54; pbVar67 = pbVar67 + 9) {\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }" for ( (assignment_expression "pbVar67 = (bfd_vma *)local_110" identifier = (cast_expression "(bfd_vma *)local_110" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ; (binary_expression "pbVar67 < pbVar54" identifier < identifier) ; (assignment_expression "pbVar67 = pbVar67 + 9" identifier = (binary_expression "pbVar67 + 9" identifier + number_literal)) ) (compound_statement "{\n                      bVar42 = *pbVar67;\n                      bVar11 = pbVar67[1];\n                      bVar12 = pbVar67[2];\n                      sVar31 = bVar11 + bVar42 + 0xc;\n                      paVar34 = paVar33;\n                      if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }\n                      local_f0 = local_f0 + sVar31;\n                      paVar33 = paVar34;\n                    }" { (expression_statement "bVar42 = *pbVar67;" (assignment_expression "bVar42 = *pbVar67" identifier = (pointer_expression "*pbVar67" * identifier)) ;) (expression_statement "bVar11 = pbVar67[1];" (assignment_expression "bVar11 = pbVar67[1]" identifier = (subscript_expression "pbVar67[1]" identifier [ number_literal ])) ;) (expression_statement "bVar12 = pbVar67[2];" (assignment_expression "bVar12 = pbVar67[2]" identifier = (subscript_expression "pbVar67[2]" identifier [ number_literal ])) ;) (expression_statement "sVar31 = bVar11 + bVar42 + 0xc;" (assignment_expression "sVar31 = bVar11 + bVar42 + 0xc" identifier = (binary_expression "bVar11 + bVar42 + 0xc" (binary_expression "bVar11 + bVar42" identifier + identifier) + number_literal)) ;) (expression_statement "paVar34 = paVar33;" (assignment_expression "paVar34 = paVar33" identifier = identifier) ;) (if_statement "if (bVar12 != 0) {\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                        if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }\n                        local_e8 = pbVar67[6];\n                        bVar41 = pbVar67[7];\n                      }" { (if_statement "if ((int)pbVar67[8] == 0) {\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }\n                        else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }" if (parenthesized_expression "((int)pbVar67[8] == 0)" ( (binary_expression "(int)pbVar67[8] == 0" (cast_expression "(int)pbVar67[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pbVar67[8]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n                          memcpy(paVar33,local_f0,sVar31);\n                          paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);\n                        }" { (expression_statement "memcpy(paVar33,local_f0,sVar31);" (call_expression "memcpy(paVar33,local_f0,sVar31)" identifier (argument_list "(paVar33,local_f0,sVar31)" ( identifier , identifier , identifier ))) ;) (expression_statement "paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42);" (assignment_expression "paVar34 = (asection *)((long)&paVar33->index + bVar11 + bVar42)" identifier = (cast_expression "(asection *)((long)&paVar33->index + bVar11 + bVar42)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar33->index + bVar11 + bVar42)" ( (binary_expression "(long)&paVar33->index + bVar11 + bVar42" (binary_expression "(long)&paVar33->index + bVar11" (cast_expression "(long)&paVar33->index" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar33->index" & (field_expression "paVar33->index" identifier -> field_identifier))) + identifier) + identifier) )))) ;) }) (else_clause "else {\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }" else (compound_statement "{\n                          pvVar40 = (void *)((long)&paVar33->name + 4);\n                          bVar9 = pbVar67[6];\n                          __dest = &paVar33->index;\n                          p_Var10 = ibfd->xvec->bfd_putx32;\n                          paVar34 = (asection *)((long)__dest + bVar42);\n                          if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }\n                        }" { (expression_statement "pvVar40 = (void *)((long)&paVar33->name + 4);" (assignment_expression "pvVar40 = (void *)((long)&paVar33->name + 4)" identifier = (cast_expression "(void *)((long)&paVar33->name + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar33->name + 4)" ( (binary_expression "(long)&paVar33->name + 4" (cast_expression "(long)&paVar33->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar33->name" & (field_expression "paVar33->name" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "bVar9 = pbVar67[6];" (assignment_expression "bVar9 = pbVar67[6]" identifier = (subscript_expression "pbVar67[6]" identifier [ number_literal ])) ;) (expression_statement "__dest = &paVar33->index;" (assignment_expression "__dest = &paVar33->index" identifier = (pointer_expression "&paVar33->index" & (field_expression "paVar33->index" identifier -> field_identifier))) ;) (expression_statement "p_Var10 = ibfd->xvec->bfd_putx32;" (assignment_expression "p_Var10 = ibfd->xvec->bfd_putx32" identifier = (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "paVar34 = (asection *)((long)__dest + bVar42);" (assignment_expression "paVar34 = (asection *)((long)__dest + bVar42)" identifier = (cast_expression "(asection *)((long)__dest + bVar42)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + bVar42)" ( (binary_expression "(long)__dest + bVar42" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((bVar9 == local_e8) && (pbVar67[7] == bVar41)) {\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }\n                          else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }" if (parenthesized_expression "((bVar9 == local_e8) && (pbVar67[7] == bVar41))" ( (binary_expression "(bVar9 == local_e8) && (pbVar67[7] == bVar41)" (parenthesized_expression "(bVar9 == local_e8)" ( (binary_expression "bVar9 == local_e8" identifier == identifier) )) && (parenthesized_expression "(pbVar67[7] == bVar41)" ( (binary_expression "pbVar67[7] == bVar41" (subscript_expression "pbVar67[7]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n                            (*p_Var10)(bVar42,paVar33);\n                            (*ibfd->xvec->bfd_putx32)(0,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                          }" { (expression_statement "(*p_Var10)(bVar42,paVar33);" (call_expression "(*p_Var10)(bVar42,paVar33)" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "(bVar42,paVar33)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)(0,pvVar40);" (call_expression "(*ibfd->xvec->bfd_putx32)(0,pvVar40)" (parenthesized_expression "(*ibfd->xvec->bfd_putx32)" ( (pointer_expression "*ibfd->xvec->bfd_putx32" * (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(0,pvVar40)" ( number_literal , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);" (call_expression "(*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id)" (parenthesized_expression "(*ibfd->xvec->bfd_putx32)" ( (pointer_expression "*ibfd->xvec->bfd_putx32" * (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(bVar12,&paVar33->id)" ( identifier , (pointer_expression "&paVar33->id" & (field_expression "paVar33->id" identifier -> field_identifier)) ))) ;) (expression_statement "memcpy(__dest,(void *)pbVar67[3],bVar42);" (call_expression "memcpy(__dest,(void *)pbVar67[3],bVar42)" identifier (argument_list "(__dest,(void *)pbVar67[3],bVar42)" ( identifier , (cast_expression "(void *)pbVar67[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pbVar67[3]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }" else (compound_statement "{\n                            (*p_Var10)(bVar42,paVar33);\n                            bVar41 = 8;\n                            if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }\n                            (*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);\n                            (*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);\n                            memcpy(__dest,(void *)pbVar67[3],bVar42);\n                            pbVar8 = ibfd->xvec;\n                            if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }\n                          }" { (expression_statement "(*p_Var10)(bVar42,paVar33);" (call_expression "(*p_Var10)(bVar42,paVar33)" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "(bVar42,paVar33)" ( identifier , identifier ))) ;) (expression_statement "bVar41 = 8;" (assignment_expression "bVar41 = 8" identifier = number_literal) ;) (if_statement "if (ibfd->xvec->flavour == bfd_target_elf_flavour) {\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }" if (parenthesized_expression "(ibfd->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "ibfd->xvec->flavour == bfd_target_elf_flavour" (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n                              bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;\n                            }" { (expression_statement "bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8;" (assignment_expression "bVar41 = (ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8" identifier = (binary_expression "(ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8 + 8" (binary_expression "(ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02') * 8" (call_expression "(ulong)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02')" ( (binary_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4] == '\x02'" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident\n                                               [4]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header" (parenthesized_expression "((ibfd->tdata).elf_obj_data)" ( (field_expression "(ibfd->tdata).elf_obj_data" (parenthesized_expression "(ibfd->tdata)" ( (field_expression "ibfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) == (char_literal "'\x02'" ' escape_sequence ')) ))) * number_literal) + number_literal)) ;) })) (expression_statement "(*ibfd->xvec->bfd_putx32)(bVar41,pvVar40);" (call_expression "(*ibfd->xvec->bfd_putx32)(bVar41,pvVar40)" (parenthesized_expression "(*ibfd->xvec->bfd_putx32)" ( (pointer_expression "*ibfd->xvec->bfd_putx32" * (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(bVar41,pvVar40)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id);" (call_expression "(*ibfd->xvec->bfd_putx32)(bVar12,&paVar33->id)" (parenthesized_expression "(*ibfd->xvec->bfd_putx32)" ( (pointer_expression "*ibfd->xvec->bfd_putx32" * (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(bVar12,&paVar33->id)" ( identifier , (pointer_expression "&paVar33->id" & (field_expression "paVar33->id" identifier -> field_identifier)) ))) ;) (expression_statement "memcpy(__dest,(void *)pbVar67[3],bVar42);" (call_expression "memcpy(__dest,(void *)pbVar67[3],bVar42)" identifier (argument_list "(__dest,(void *)pbVar67[3],bVar42)" ( identifier , (cast_expression "(void *)pbVar67[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pbVar67[3]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "pbVar8 = ibfd->xvec;" (assignment_expression "pbVar8 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (if_statement "if ((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }\n                            else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }" if (parenthesized_expression "((pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'))" ( (binary_expression "(pbVar8->flavour == bfd_target_elf_flavour) &&\n                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" (parenthesized_expression "(pbVar8->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar8->flavour == bfd_target_elf_flavour" (field_expression "pbVar8->flavour" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" ( (binary_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident" (subscript_expression "((ibfd->tdata).elf_obj_data)->elf_header[0]" (field_expression "((ibfd->tdata).elf_obj_data)->elf_header" (parenthesized_expression "((ibfd->tdata).elf_obj_data)" ( (field_expression "(ibfd->tdata).elf_obj_data" (parenthesized_expression "(ibfd->tdata)" ( (field_expression "ibfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                              (*pbVar8->bfd_putx64)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);\n                              paVar34 = (asection *)&paVar34->next;\n                            }" { (expression_statement "(*pbVar8->bfd_putx64)(bVar9,paVar34);" (call_expression "(*pbVar8->bfd_putx64)(bVar9,paVar34)" (parenthesized_expression "(*pbVar8->bfd_putx64)" ( (pointer_expression "*pbVar8->bfd_putx64" * (field_expression "pbVar8->bfd_putx64" identifier -> field_identifier)) )) (argument_list "(bVar9,paVar34)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id);" (call_expression "(*ibfd->xvec->bfd_putx64)(pbVar67[7],&paVar34->id)" (parenthesized_expression "(*ibfd->xvec->bfd_putx64)" ( (pointer_expression "*ibfd->xvec->bfd_putx64" * (field_expression "ibfd->xvec->bfd_putx64" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar67[7],&paVar34->id)" ( (subscript_expression "pbVar67[7]" identifier [ number_literal ]) , (pointer_expression "&paVar34->id" & (field_expression "paVar34->id" identifier -> field_identifier)) ))) ;) (expression_statement "paVar34 = (asection *)&paVar34->next;" (assignment_expression "paVar34 = (asection *)&paVar34->next" identifier = (cast_expression "(asection *)&paVar34->next" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar34->next" & (field_expression "paVar34->next" identifier -> field_identifier)))) ;) }) (else_clause "else {\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }" else (compound_statement "{\n                              (*pbVar8->bfd_putx32)(bVar9,paVar34);\n                              (*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));\n                              paVar34 = (asection *)&paVar34->id;\n                            }" { (expression_statement "(*pbVar8->bfd_putx32)(bVar9,paVar34);" (call_expression "(*pbVar8->bfd_putx32)(bVar9,paVar34)" (parenthesized_expression "(*pbVar8->bfd_putx32)" ( (pointer_expression "*pbVar8->bfd_putx32" * (field_expression "pbVar8->bfd_putx32" identifier -> field_identifier)) )) (argument_list "(bVar9,paVar34)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4));" (call_expression "(*ibfd->xvec->bfd_putx32)\n                                        (pbVar67[7],(void *)((long)&paVar34->name + 4))" (parenthesized_expression "(*ibfd->xvec->bfd_putx32)" ( (pointer_expression "*ibfd->xvec->bfd_putx32" * (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar67[7],(void *)((long)&paVar34->name + 4))" ( (subscript_expression "pbVar67[7]" identifier [ number_literal ]) , (cast_expression "(void *)((long)&paVar34->name + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar34->name + 4)" ( (binary_expression "(long)&paVar34->name + 4" (cast_expression "(long)&paVar34->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar34->name" & (field_expression "paVar34->name" identifier -> field_identifier))) + number_literal) ))) ))) ;) (expression_statement "paVar34 = (asection *)&paVar34->id;" (assignment_expression "paVar34 = (asection *)&paVar34->id" identifier = (cast_expression "(asection *)&paVar34->id" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar34->id" & (field_expression "paVar34->id" identifier -> field_identifier)))) ;) }))) }))) }))) (expression_statement "local_e8 = pbVar67[6];" (assignment_expression "local_e8 = pbVar67[6]" identifier = (subscript_expression "pbVar67[6]" identifier [ number_literal ])) ;) (expression_statement "bVar41 = pbVar67[7];" (assignment_expression "bVar41 = pbVar67[7]" identifier = (subscript_expression "pbVar67[7]" identifier [ number_literal ])) ;) })) (expression_statement "local_f0 = local_f0 + sVar31;" (assignment_expression "local_f0 = local_f0 + sVar31" identifier = (binary_expression "local_f0 + sVar31" identifier + identifier)) ;) (expression_statement "paVar33 = paVar34;" (assignment_expression "paVar33 = paVar34" identifier = identifier) ;) })) (expression_statement "sVar31 = (long)paVar33 - (long)paVar43;" (assignment_expression "sVar31 = (long)paVar33 - (long)paVar43" identifier = (binary_expression "(long)paVar33 - (long)paVar43" (cast_expression "(long)paVar33" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)paVar43" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "pcVar23 = (char *)paVar43;" (assignment_expression "pcVar23 = (char *)paVar43" identifier = (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "memcpy(__dest_00,paVar43,sVar31);" (call_expression "memcpy(__dest_00,paVar43,sVar31)" identifier (argument_list "(__dest_00,paVar43,sVar31)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(paVar43);" (call_expression "free(paVar43)" identifier (argument_list "(paVar43)" ( identifier ))) ;) (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;) (expression_statement "merged_size = sVar31;" (assignment_expression "merged_size = sVar31" identifier = identifier) ;) (if_statement "if (uVar35 != sVar31) {\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }" if (parenthesized_expression "(uVar35 != sVar31)" ( (binary_expression "uVar35 != sVar31" identifier != identifier) )) (compound_statement "{\n                      pcVar23 = (char *)paVar25->output_section;\n                      if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;\n                      pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);\n                      pcVar23 = (char *)obfd;\n                      bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);\n                    }" { (expression_statement "pcVar23 = (char *)paVar25->output_section;" (assignment_expression "pcVar23 = (char *)paVar25->output_section" identifier = (cast_expression "(char *)paVar25->output_section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "paVar25->output_section" identifier -> field_identifier))) ;) (if_statement "if (((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))\n                      goto LAB_0010941b;" if (parenthesized_expression "(((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0))" ( (binary_expression "((asection *)pcVar23 != (asection *)0x0) &&\n                         (iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0)" (parenthesized_expression "((asection *)pcVar23 != (asection *)0x0)" ( (binary_expression "(asection *)pcVar23 != (asection *)0x0" (cast_expression "(asection *)pcVar23" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0)" ( (comma_expression "iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31), iVar17 != 0" (assignment_expression "iVar17 = bfd_set_section_size(obfd,pcVar23,sVar31)" identifier = (call_expression "bfd_set_section_size(obfd,pcVar23,sVar31)" identifier (argument_list "(obfd,pcVar23,sVar31)" ( identifier , identifier , identifier )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0010941b;" goto statement_identifier ;)) (expression_statement "pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"warning: failed to set merged notes size",5)" identifier = (cast_expression "(char *)dcgettext(0,"warning: failed to set merged notes size",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: failed to set merged notes size",5)" identifier (argument_list "(0,"warning: failed to set merged notes size",5)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar23 = (char *)obfd;" (assignment_expression "pcVar23 = (char *)obfd" identifier = (cast_expression "(char *)obfd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar58)" identifier (argument_list "((char *)0x0,obfd,paVar25,pcVar58)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }" else (compound_statement "{\n                    pcVar23 = "corrupt GNU build attribute notes: excess data at end";\n                    pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);\nLAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }\nLAB_0010b098:\n                    free(local_110);\n                  }" { (expression_statement "pcVar23 = "corrupt GNU build attribute notes: excess data at end";" (assignment_expression "pcVar23 = "corrupt GNU build attribute notes: excess data at end"" identifier = (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ")) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5)" identifier (argument_list "(0,\n                                                "corrupt GNU build attribute notes: excess data at end"\n                                                ,5)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal ))))) ;) (labeled_statement "LAB_0010b063:\n                    if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }" statement_identifier : (if_statement "if (pcVar58 != (char *)0x0) {\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }" if (parenthesized_expression "(pcVar58 != (char *)0x0)" ( (binary_expression "pcVar58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      bfd_set_error();\n                      pcVar23 = (char *)ibfd;\n                      bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);\n                      status = 1;\n                    }" { (expression_statement "bfd_set_error();" (call_expression "bfd_set_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar23 = (char *)ibfd;" (assignment_expression "pcVar23 = (char *)ibfd" identifier = (cast_expression "(char *)ibfd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar58)" identifier (argument_list "((char *)0x0,ibfd,paVar25,pcVar58)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0010b098:\n                    free(local_110);" statement_identifier : (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;)) }))) (expression_statement "free(merged_notes);" (call_expression "free(merged_notes)" identifier (argument_list "(merged_notes)" ( identifier ))) ;) (expression_statement "merged_notes = (bfd_byte *)0x0;" (assignment_expression "merged_notes = (bfd_byte *)0x0" identifier = (cast_expression "(bfd_byte *)0x0" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "merge_notes = 0;" (assignment_expression "merge_notes = 0" identifier = number_literal) ;) (expression_statement "merged_size = 0;" (assignment_expression "merged_size = 0" identifier = number_literal) ;) }))) }))) })) })) })) (labeled_statement "LAB_0010941b:\n        pcVar59 = (code *)pcVar23;" statement_identifier : (expression_statement "pcVar59 = (code *)pcVar23;" (assignment_expression "pcVar59 = (code *)pcVar23" identifier = (cast_expression "(code *)pcVar23" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (for_statement "for (psVar52 = dump_sections; psVar52 != (section_add *)0x0; psVar52 = psVar52->next) {\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }" for ( (assignment_expression "psVar52 = dump_sections" identifier = identifier) ; (binary_expression "psVar52 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "psVar52 = psVar52->next" identifier = (field_expression "psVar52->next" identifier -> field_identifier)) ) (compound_statement "{\n          paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);\n          pcVar59 = (code *)ibfd;\n          if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }\nLAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;\n        if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }\n        uVar47 = obfd->section_count;\n        if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar35;\n        local_b0 = (void *)0x0;\n        if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }\n        if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);\n        bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n        bfd_map_over_sections(ibfd,copy_section,obfd);\n        for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }\n        for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }\n        if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }\n        if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }\n        if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }\n        bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);\n        if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }\n        pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);\n        iVar17 = 0;\n        goto LAB_00109580;\n      }" { (expression_statement "paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name);" (assignment_expression "paVar25 = (asection *)bfd_get_section_by_name(ibfd,psVar52->name)" identifier = (cast_expression "(asection *)bfd_get_section_by_name(ibfd,psVar52->name)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(ibfd,psVar52->name)" identifier (argument_list "(ibfd,psVar52->name)" ( identifier , (field_expression "psVar52->name" identifier -> field_identifier) ))))) ;) (expression_statement "pcVar59 = (code *)ibfd;" (assignment_expression "pcVar59 = (code *)ibfd" identifier = (cast_expression "(code *)ibfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (paVar25 == (asection *)0x0) {\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }\n          else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }" if (parenthesized_expression "(paVar25 == (asection *)0x0)" ( (binary_expression "paVar25 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar23 = psVar52->name;\n            pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);\n          }" { (expression_statement "pcVar23 = psVar52->name;" (assignment_expression "pcVar23 = psVar52->name" identifier = (field_expression "psVar52->name" identifier -> field_identifier)) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier (argument_list "(0,"can\'t dump section \'%s\' - it does not exist",5)" ( number_literal , (string_literal ""can\'t dump section \'%s\' - it does not exist"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23)" identifier (argument_list "((char *)0x0,ibfd,(asection *)0x0,pcVar58,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }" else (compound_statement "{\n            pcVar23 = "can\'t dump section - it has no contents";\n            if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }\n            pcVar23 = (char *)dcgettext(0,pcVar23,5);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n          }" { (expression_statement "pcVar23 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar23 = "can\'t dump section - it has no contents"" identifier = (string_literal ""can\'t dump section - it has no contents"" " string_content escape_sequence string_content ")) ;) (if_statement "if ((paVar25->flags & 0x100) != 0) {\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }" if (parenthesized_expression "((paVar25->flags & 0x100) != 0)" ( (binary_expression "(paVar25->flags & 0x100) != 0" (parenthesized_expression "(paVar25->flags & 0x100)" ( (binary_expression "paVar25->flags & 0x100" (field_expression "paVar25->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              sVar31 = paVar25->size;\n              if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar23 = "can\'t dump section - it is empty";\n            }" { (expression_statement "sVar31 = paVar25->size;" (assignment_expression "sVar31 = paVar25->size" identifier = (field_expression "paVar25->size" identifier -> field_identifier)) ;) (if_statement "if (sVar31 != 0) {\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }" if (parenthesized_expression "(sVar31 != 0)" ( (binary_expression "sVar31 != 0" identifier != number_literal) )) (compound_statement "{\n                __s = fopen(psVar52->filename,"w");\n                if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }\n                goto LAB_001094a8;\n              }" { (expression_statement "__s = fopen(psVar52->filename,"w");" (assignment_expression "__s = fopen(psVar52->filename,"w")" identifier = (call_expression "fopen(psVar52->filename,"w")" identifier (argument_list "(psVar52->filename,"w")" ( (field_expression "psVar52->filename" identifier -> field_identifier) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }\n                else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }" if (parenthesized_expression "(__s == (FILE *)0x0)" ( (binary_expression "__s == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);\n                  pcVar59 = (code *)0x0;\n                  bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);\n                }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"could not open section dump file",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"could not open section dump file",5)" identifier = (cast_expression "(char *)dcgettext(0,"could not open section dump file",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"could not open section dump file",5)" identifier (argument_list "(0,"could not open section dump file",5)" ( number_literal , (string_literal ""could not open section dump file"" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar59 = (code *)0x0;" (assignment_expression "pcVar59 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23);" (call_expression "bfd_nonfatal_message(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23)" identifier (argument_list "(psVar52->filename,(bfd *)0x0,(asection *)0x0,pcVar23)" ( (field_expression "psVar52->filename" identifier -> field_identifier) , (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) }) (else_clause "else {\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }" else (compound_statement "{\n                  iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(contents);\n                }" { (expression_statement "iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents);" (assignment_expression "iVar17 = bfd_malloc_and_get_section(ibfd,paVar25,&contents)" identifier = (call_expression "bfd_malloc_and_get_section(ibfd,paVar25,&contents)" identifier (argument_list "(ibfd,paVar25,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) )))) ;) (if_statement "if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }\n                  else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);\n                    bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);\n                  }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"could not retrieve section contents",5)" identifier = (cast_expression "(char *)dcgettext(0,"could not retrieve section contents",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"could not retrieve section contents",5)" identifier (argument_list "(0,"could not retrieve section contents",5)" ( number_literal , (string_literal ""could not retrieve section contents"" " string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23)" identifier (argument_list "((char *)0x0,ibfd,paVar25,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }" else (compound_statement "{\n                    pcVar59 = (code *)0x1;\n                    sVar32 = fwrite(contents,1,sVar31,__s);\n                    if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }\n                  }" { (expression_statement "pcVar59 = (code *)0x1;" (assignment_expression "pcVar59 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar32 = fwrite(contents,1,sVar31,__s);" (assignment_expression "sVar32 = fwrite(contents,1,sVar31,__s)" identifier = (call_expression "fwrite(contents,1,sVar31,__s)" identifier (argument_list "(contents,1,sVar31,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar31 != sVar32) {\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }" if (parenthesized_expression "(sVar31 != sVar32)" ( (binary_expression "sVar31 != sVar32" identifier != identifier) )) (compound_statement "{\n                      piVar38 = __errno_location();\n                      pcVar58 = strerror(*piVar38);\n                      pcVar23 = psVar52->filename;\n                      pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);\n                      non_fatal(pcVar39,pcVar23,pcVar58);\n                      free(contents);\n                      return 0;\n                    }" { (expression_statement "piVar38 = __errno_location();" (assignment_expression "piVar38 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar58 = strerror(*piVar38);" (assignment_expression "pcVar58 = strerror(*piVar38)" identifier = (call_expression "strerror(*piVar38)" identifier (argument_list "(*piVar38)" ( (pointer_expression "*piVar38" * identifier) )))) ;) (expression_statement "pcVar23 = psVar52->filename;" (assignment_expression "pcVar23 = psVar52->filename" identifier = (field_expression "psVar52->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5);" (assignment_expression "pcVar39 = (char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "error writing section contents to %s (error: %s)"\n                                                  ,5)" ( number_literal , (string_literal ""error writing section contents to %s (error: %s)"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar39,pcVar23,pcVar58);" (call_expression "non_fatal(pcVar39,pcVar23,pcVar58)" identifier (argument_list "(pcVar39,pcVar23,pcVar58)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(contents);" (call_expression "free(contents)" identifier (argument_list "(contents)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "fclose(__s);" (call_expression "fclose(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(contents);" (call_expression "free(contents)" identifier (argument_list "(contents)" ( identifier ))) ;) }))) (goto_statement "goto LAB_001094a8;" goto statement_identifier ;) })) (expression_statement "pcVar23 = "can\'t dump section - it is empty";" (assignment_expression "pcVar23 = "can\'t dump section - it is empty"" identifier = (string_literal ""can\'t dump section - it is empty"" " string_content escape_sequence string_content ")) ;) })) (expression_statement "pcVar23 = (char *)dcgettext(0,pcVar23,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,pcVar23,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar23,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar23,5)" identifier (argument_list "(0,pcVar23,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar25,pcVar23)" identifier (argument_list "((char *)0x0,ibfd,paVar25,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_001094a8:\n        }\n        local_a8 = gnu_debuglink_filename;" statement_identifier : (ERROR "}" }) (expression_statement "local_a8 = gnu_debuglink_filename;" (assignment_expression "local_a8 = gnu_debuglink_filename" identifier = identifier) ;)) (if_statement "if (gnu_debuglink_filename != (char *)0x0) {\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }" if (parenthesized_expression "(gnu_debuglink_filename != (char *)0x0)" ( (binary_expression "gnu_debuglink_filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");\n          if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }\n        }" { (expression_statement "lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink");" (assignment_expression "lVar57 = bfd_get_section_by_name(obfd,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(obfd,".gnu_debuglink")" identifier (argument_list "(obfd,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (lVar57 == 0) {\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }\n          else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }" if (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar59 = (code *)gnu_debuglink_filename;\n            local_a8 = (char *)bfd_create_gnu_debuglink_section();\n            if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }\n            if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }\n          }" { (expression_statement "pcVar59 = (code *)gnu_debuglink_filename;" (assignment_expression "pcVar59 = (code *)gnu_debuglink_filename" identifier = (cast_expression "(code *)gnu_debuglink_filename" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_a8 = (char *)bfd_create_gnu_debuglink_section();" (assignment_expression "local_a8 = (char *)bfd_create_gnu_debuglink_section()" identifier = (cast_expression "(char *)bfd_create_gnu_debuglink_section()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_create_gnu_debuglink_section()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_a8 == (char *)0x0) {\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }" if (parenthesized_expression "(local_a8 == (char *)0x0)" ( (binary_expression "local_a8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar58 = "cannot create debug link section `%s\'";\n              pcVar23 = gnu_debuglink_filename;\nLAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              return 0;\n            }" { (expression_statement "pcVar58 = "cannot create debug link section `%s\'";" (assignment_expression "pcVar58 = "cannot create debug link section `%s\'"" identifier = (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ")) ;) (expression_statement "pcVar23 = gnu_debuglink_filename;" (assignment_expression "pcVar23 = gnu_debuglink_filename" identifier = identifier) ;) (labeled_statement "LAB_00109ad0:\n              pcVar58 = (char *)dcgettext(0,pcVar58,5);" statement_identifier : (expression_statement "pcVar58 = (char *)dcgettext(0,pcVar58,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,pcVar58,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar58,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar58,5)" identifier (argument_list "(0,pcVar58,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (obfd->xvec->flavour == bfd_target_coff_flavour) {\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }" if (parenthesized_expression "(obfd->xvec->flavour == bfd_target_coff_flavour)" ( (binary_expression "obfd->xvec->flavour == bfd_target_coff_flavour" (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n              pbVar37 = obfd->sections;\n              pbVar49 = (bfd_section *)0x0;\n              if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar45;\n              *(ulong *)(local_a8 + 0x28) = uVar45;\n              local_a8[0x24] = local_a8[0x24] | 1;\n            }" { (expression_statement "pbVar37 = obfd->sections;" (assignment_expression "pbVar37 = obfd->sections" identifier = (field_expression "obfd->sections" identifier -> field_identifier)) ;) (expression_statement "pbVar49 = (bfd_section *)0x0;" (assignment_expression "pbVar49 = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar37 == (bfd_section *)0x0) {\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }\n              else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }" if (parenthesized_expression "(pbVar37 == (bfd_section *)0x0)" ( (binary_expression "pbVar37 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0010ad5e:\n                uVar45 = 0x1000;\n              }" { (labeled_statement "LAB_0010ad5e:\n                uVar45 = 0x1000;" statement_identifier : (expression_statement "uVar45 = 0x1000;" (assignment_expression "uVar45 = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }" else (compound_statement "{\n                do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);\n                if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;\n                uVar35 = pbVar48->size + pbVar48->vma;\n                uVar45 = 0xffffffffffffffff;\n                if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }\n              }" { (do_statement "do {\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                } while (pbVar37 != (bfd_section *)0x0);" do (compound_statement "{\n                  pbVar48 = pbVar49;\n                  if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }\n                  pbVar37 = pbVar37->next;\n                  pbVar49 = pbVar48;\n                }" { (expression_statement "pbVar48 = pbVar49;" (assignment_expression "pbVar48 = pbVar49" identifier = identifier) ;) (if_statement "if (((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)) {\n                    pbVar48 = pbVar37;\n                  }" if (parenthesized_expression "(((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma))" ( (binary_expression "((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)) &&\n                     (pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)" (parenthesized_expression "((pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0))" ( (binary_expression "(pbVar37->vma != 0) && (pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)" (parenthesized_expression "(pbVar37->vma != 0)" ( (binary_expression "pbVar37->vma != 0" (field_expression "pbVar37->vma" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0)" ( (comma_expression "pbVar48 = pbVar37, pbVar49 != (bfd_section *)0x0" (assignment_expression "pbVar48 = pbVar37" identifier = identifier) , (binary_expression "pbVar49 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma)" ( (comma_expression "pbVar48 = pbVar49, pbVar49->vma < pbVar37->vma" (assignment_expression "pbVar48 = pbVar49" identifier = identifier) , (binary_expression "pbVar49->vma < pbVar37->vma" (field_expression "pbVar49->vma" identifier -> field_identifier) < (field_expression "pbVar37->vma" identifier -> field_identifier))) ))) )) (compound_statement "{\n                    pbVar48 = pbVar37;\n                  }" { (expression_statement "pbVar48 = pbVar37;" (assignment_expression "pbVar48 = pbVar37" identifier = identifier) ;) })) (expression_statement "pbVar37 = pbVar37->next;" (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ;) (expression_statement "pbVar49 = pbVar48;" (assignment_expression "pbVar49 = pbVar48" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pbVar48 == (bfd_section *)0x0) goto LAB_0010ad5e;" if (parenthesized_expression "(pbVar48 == (bfd_section *)0x0)" ( (binary_expression "pbVar48 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010ad5e;" goto statement_identifier ;)) (expression_statement "uVar35 = pbVar48->size + pbVar48->vma;" (assignment_expression "uVar35 = pbVar48->size + pbVar48->vma" identifier = (binary_expression "pbVar48->size + pbVar48->vma" (field_expression "pbVar48->size" identifier -> field_identifier) + (field_expression "pbVar48->vma" identifier -> field_identifier))) ;) (expression_statement "uVar45 = 0xffffffffffffffff;" (assignment_expression "uVar45 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (uVar35 < 0xfffffffffffff001) {\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }" if (parenthesized_expression "(uVar35 < 0xfffffffffffff001)" ( (binary_expression "uVar35 < 0xfffffffffffff001" identifier < number_literal) )) (compound_statement "{\n                  uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;\n                }" { (expression_statement "uVar45 = uVar35 + 0xfff & 0xfffffffffffff000;" (assignment_expression "uVar45 = uVar35 + 0xfff & 0xfffffffffffff000" identifier = (binary_expression "uVar35 + 0xfff & 0xfffffffffffff000" (binary_expression "uVar35 + 0xfff" identifier + number_literal) & number_literal)) ;) })) }))) (expression_statement "*(ulong *)(local_a8 + 0x30) = uVar45;" (assignment_expression "*(ulong *)(local_a8 + 0x30) = uVar45" (pointer_expression "*(ulong *)(local_a8 + 0x30)" * (cast_expression "(ulong *)(local_a8 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x30)" ( (binary_expression "local_a8 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(local_a8 + 0x28) = uVar45;" (assignment_expression "*(ulong *)(local_a8 + 0x28) = uVar45" (pointer_expression "*(ulong *)(local_a8 + 0x28)" * (cast_expression "(ulong *)(local_a8 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x28)" ( (binary_expression "local_a8 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a8[0x24] = local_a8[0x24] | 1;" (assignment_expression "local_a8[0x24] = local_a8[0x24] | 1" (subscript_expression "local_a8[0x24]" identifier [ number_literal ]) = (binary_expression "local_a8[0x24] | 1" (subscript_expression "local_a8[0x24]" identifier [ number_literal ]) | number_literal)) ;) })) }) (else_clause "else {\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }" else (compound_statement "{\n            pcVar59 = (code *)obfd->filename;\n            pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n            non_fatal(pcVar23);\n            gnu_debuglink_filename = (char *)0x0;\n            local_a8 = (char *)0x0;\n          }" { (expression_statement "pcVar59 = (code *)obfd->filename;" (assignment_expression "pcVar59 = (code *)obfd->filename" identifier = (cast_expression "(code *)obfd->filename" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "obfd->filename" identifier -> field_identifier))) ;) (expression_statement "pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"%s: debuglink section already exists",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: debuglink section already exists",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: debuglink section already exists",5)" identifier (argument_list "(0,"%s: debuglink section already exists",5)" ( number_literal , (string_literal ""%s: debuglink section already exists"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23);" (call_expression "non_fatal(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "gnu_debuglink_filename = (char *)0x0;" (assignment_expression "gnu_debuglink_filename = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (char *)0x0;" (assignment_expression "local_a8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "uVar47 = obfd->section_count;" (assignment_expression "uVar47 = obfd->section_count" identifier = (field_expression "obfd->section_count" identifier -> field_identifier)) ;) (if_statement "if ((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }\n        else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0))" ( (binary_expression "(uVar47 == 0) || (gap_fill_set == 0 && pad_to_set == 0)" (parenthesized_expression "(uVar47 == 0)" ( (binary_expression "uVar47 == 0" identifier == number_literal) )) || (parenthesized_expression "(gap_fill_set == 0 && pad_to_set == 0)" ( (binary_expression "gap_fill_set == 0 && pad_to_set == 0" (binary_expression "gap_fill_set == 0" identifier == number_literal) && (binary_expression "pad_to_set == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar35 = local_a0;\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (ulong *)0x0;" (assignment_expression "local_90 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (long *)0x0;" (assignment_expression "local_98 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar35 = local_a0;" (assignment_expression "uVar35 = local_a0" identifier = identifier) ;) }) (else_clause "else {\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          sVar31 = (ulong)uVar47 * 8;\n          local_98 = (long *)xmalloc(sVar31);\n          contents = (bfd_byte *)local_98;\n          bfd_map_over_sections(obfd,get_sections,&contents);\n          qsort(local_98,(ulong)uVar47,8,compare_section_lma);\n          local_90 = (ulong *)xmalloc(sVar31);\n          pcVar59 = (code *)0x0;\n          memset(local_90,0,sVar31);\n          uVar35 = 0;\n          local_a0 = 0;\n          if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }\n          uVar35 = local_a0;\n          if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "sVar31 = (ulong)uVar47 * 8;" (assignment_expression "sVar31 = (ulong)uVar47 * 8" identifier = (binary_expression "(ulong)uVar47 * 8" (cast_expression "(ulong)uVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "local_98 = (long *)xmalloc(sVar31);" (assignment_expression "local_98 = (long *)xmalloc(sVar31)" identifier = (cast_expression "(long *)xmalloc(sVar31)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar31)" identifier (argument_list "(sVar31)" ( identifier ))))) ;) (expression_statement "contents = (bfd_byte *)local_98;" (assignment_expression "contents = (bfd_byte *)local_98" identifier = (cast_expression "(bfd_byte *)local_98" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_map_over_sections(obfd,get_sections,&contents);" (call_expression "bfd_map_over_sections(obfd,get_sections,&contents)" identifier (argument_list "(obfd,get_sections,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) ))) ;) (expression_statement "qsort(local_98,(ulong)uVar47,8,compare_section_lma);" (call_expression "qsort(local_98,(ulong)uVar47,8,compare_section_lma)" identifier (argument_list "(local_98,(ulong)uVar47,8,compare_section_lma)" ( identifier , (cast_expression "(ulong)uVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "local_90 = (ulong *)xmalloc(sVar31);" (assignment_expression "local_90 = (ulong *)xmalloc(sVar31)" identifier = (cast_expression "(ulong *)xmalloc(sVar31)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar31)" identifier (argument_list "(sVar31)" ( identifier ))))) ;) (expression_statement "pcVar59 = (code *)0x0;" (assignment_expression "pcVar59 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "memset(local_90,0,sVar31);" (call_expression "memset(local_90,0,sVar31)" identifier (argument_list "(local_90,0,sVar31)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if ((gap_fill_set != 0) && (uVar47 != 1)) {\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }" if (parenthesized_expression "((gap_fill_set != 0) && (uVar47 != 1))" ( (binary_expression "(gap_fill_set != 0) && (uVar47 != 1)" (parenthesized_expression "(gap_fill_set != 0)" ( (binary_expression "gap_fill_set != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar47 != 1)" ( (binary_expression "uVar47 != 1" identifier != number_literal) ))) )) (compound_statement "{\n            plVar36 = local_98;\n            puVar51 = local_90;\n            do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);\n          }" { (expression_statement "plVar36 = local_98;" (assignment_expression "plVar36 = local_98" identifier = identifier) ;) (expression_statement "puVar51 = local_90;" (assignment_expression "puVar51 = local_90" identifier = identifier) ;) (do_statement "do {\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            } while (local_98 + (ulong)(uVar47 - 2) + 1 != plVar36);" do (compound_statement "{\n              pcVar59 = (code *)*plVar36;\n              if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }\n              plVar36 = plVar36 + 1;\n              puVar51 = puVar51 + 1;\n              local_a0 = uVar35;\n            }" { (expression_statement "pcVar59 = (code *)*plVar36;" (assignment_expression "pcVar59 = (code *)*plVar36" identifier = (cast_expression "(code *)*plVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier))) ;) (if_statement "if ((((asection *)pcVar59)->flags & 0x102) == 0x102) {\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }" if (parenthesized_expression "((((asection *)pcVar59)->flags & 0x102) == 0x102)" ( (binary_expression "(((asection *)pcVar59)->flags & 0x102) == 0x102" (parenthesized_expression "(((asection *)pcVar59)->flags & 0x102)" ( (binary_expression "((asection *)pcVar59)->flags & 0x102" (field_expression "((asection *)pcVar59)->flags" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;\n                if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }\n              }" { (expression_statement "uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size;" (assignment_expression "uVar45 = ((asection *)pcVar59)->lma + ((asection *)pcVar59)->size" identifier = (binary_expression "((asection *)pcVar59)->lma + ((asection *)pcVar59)->size" (field_expression "((asection *)pcVar59)->lma" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (field_expression "((asection *)pcVar59)->size" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (if_statement "if (uVar45 < *(ulong *)(plVar36[1] + 0x30)) {\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }" if (parenthesized_expression "(uVar45 < *(ulong *)(plVar36[1] + 0x30))" ( (binary_expression "uVar45 < *(ulong *)(plVar36[1] + 0x30)" identifier < (pointer_expression "*(ulong *)(plVar36[1] + 0x30)" * (cast_expression "(ulong *)(plVar36[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar36[1] + 0x30)" ( (binary_expression "plVar36[1] + 0x30" (subscript_expression "plVar36[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                  uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;\n                  iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);\n                  if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }\n                  *puVar51 = uVar45;\n                  if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }\n                }" { (expression_statement "uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45;" (assignment_expression "uVar45 = *(ulong *)(plVar36[1] + 0x30) - uVar45" identifier = (binary_expression "*(ulong *)(plVar36[1] + 0x30) - uVar45" (pointer_expression "*(ulong *)(plVar36[1] + 0x30)" * (cast_expression "(ulong *)(plVar36[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar36[1] + 0x30)" ( (binary_expression "plVar36[1] + 0x30" (subscript_expression "plVar36[1]" identifier [ number_literal ]) + number_literal) )))) - identifier)) ;) (expression_statement "iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45);" (assignment_expression "iVar17 = bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45)" identifier = (call_expression "bfd_set_section_size(obfd,pcVar59,((asection *)pcVar59)->size + uVar45)" identifier (argument_list "(obfd,pcVar59,((asection *)pcVar59)->size + uVar45)" ( identifier , identifier , (binary_expression "((asection *)pcVar59)->size + uVar45" (field_expression "((asection *)pcVar59)->size" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + identifier) )))) ;) (if_statement "if (iVar17 == 0) {\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);\n                    pcVar59 = (code *)obfd;\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);\n                    status = 1;\n                    local_a0 = uVar35;\n                    break;\n                  }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"Can\'t fill gap after section",5)" identifier = (cast_expression "(char *)dcgettext(0,"Can\'t fill gap after section",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Can\'t fill gap after section",5)" identifier (argument_list "(0,"Can\'t fill gap after section",5)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "pcVar59 = (code *)obfd;" (assignment_expression "pcVar59 = (code *)obfd" identifier = (cast_expression "(code *)obfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*plVar36,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)*plVar36,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)*plVar36" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier)) , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (expression_statement "local_a0 = uVar35;" (assignment_expression "local_a0 = uVar35" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "*puVar51 = uVar45;" (assignment_expression "*puVar51 = uVar45" (pointer_expression "*puVar51" * identifier) = identifier) ;) (if_statement "if (uVar35 < uVar45) {\n                    uVar35 = uVar45;\n                  }" if (parenthesized_expression "(uVar35 < uVar45)" ( (binary_expression "uVar35 < uVar45" identifier < identifier) )) (compound_statement "{\n                    uVar35 = uVar45;\n                  }" { (expression_statement "uVar35 = uVar45;" (assignment_expression "uVar35 = uVar45" identifier = identifier) ;) })) })) })) (expression_statement "plVar36 = plVar36 + 1;" (assignment_expression "plVar36 = plVar36 + 1" identifier = (binary_expression "plVar36 + 1" identifier + number_literal)) ;) (expression_statement "puVar51 = puVar51 + 1;" (assignment_expression "puVar51 = puVar51 + 1" identifier = (binary_expression "puVar51 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = uVar35;" (assignment_expression "local_a0 = uVar35" identifier = identifier) ;) }) while (parenthesized_expression "(local_98 + (ulong)(uVar47 - 2) + 1 != plVar36)" ( (binary_expression "local_98 + (ulong)(uVar47 - 2) + 1 != plVar36" (binary_expression "local_98 + (ulong)(uVar47 - 2) + 1" (binary_expression "local_98 + (ulong)(uVar47 - 2)" identifier + (call_expression "(ulong)(uVar47 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar47 - 2)" ( (binary_expression "uVar47 - 2" identifier - number_literal) )))) + number_literal) != identifier) )) ;) })) (expression_statement "uVar35 = local_a0;" (assignment_expression "uVar35 = local_a0" identifier = identifier) ;) (if_statement "if (pad_to_set != 0) {\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(pad_to_set != 0)" ( (binary_expression "pad_to_set != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar59 = (code *)local_98[uVar47 - 1];\n            uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;\n            if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }\n          }" { (expression_statement "pcVar59 = (code *)local_98[uVar47 - 1];" (assignment_expression "pcVar59 = (code *)local_98[uVar47 - 1]" identifier = (cast_expression "(code *)local_98[uVar47 - 1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_98[uVar47 - 1]" identifier [ (binary_expression "uVar47 - 1" identifier - number_literal) ]))) ;) (expression_statement "uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma;" (assignment_expression "uVar45 = ((asection *)pcVar59)->size + ((asection *)pcVar59)->lma" identifier = (binary_expression "((asection *)pcVar59)->size + ((asection *)pcVar59)->lma" (field_expression "((asection *)pcVar59)->size" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (field_expression "((asection *)pcVar59)->lma" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (if_statement "if (uVar45 < pad_to) {\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar45 < pad_to)" ( (binary_expression "uVar45 < pad_to" identifier < identifier) )) (compound_statement "{\n              iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);\n              if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }\n            }" { (expression_statement "iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma);" (assignment_expression "iVar17 = bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma)" identifier = (call_expression "bfd_set_section_size(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma)" identifier (argument_list "(obfd,pcVar59,pad_to - ((asection *)pcVar59)->lma)" ( identifier , identifier , (binary_expression "pad_to - ((asection *)pcVar59)->lma" identifier - (field_expression "((asection *)pcVar59)->lma" (parenthesized_expression "((asection *)pcVar59)" ( (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) )))) ;) (if_statement "if (iVar17 == 0) {\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }\n              else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);\n                pcVar59 = (code *)obfd;\n                bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);\n                status = 1;\n              }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"can\'t add padding",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"can\'t add padding",5)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t add padding",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t add padding",5)" identifier (argument_list "(0,"can\'t add padding",5)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "pcVar59 = (code *)obfd;" (assignment_expression "pcVar59 = (code *)obfd" identifier = (cast_expression "(code *)obfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)local_98[uVar47 - 1],pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)local_98[uVar47 - 1]" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_98[uVar47 - 1]" identifier [ (binary_expression "uVar47 - 1" identifier - number_literal) ])) , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) }) (else_clause "else {\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }" else (compound_statement "{\n                uVar35 = pad_to - uVar45;\n                local_90[uVar47 - 1] = uVar35;\n                if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }\n              }" { (expression_statement "uVar35 = pad_to - uVar45;" (assignment_expression "uVar35 = pad_to - uVar45" identifier = (binary_expression "pad_to - uVar45" identifier - identifier)) ;) (expression_statement "local_90[uVar47 - 1] = uVar35;" (assignment_expression "local_90[uVar47 - 1] = uVar35" (subscript_expression "local_90[uVar47 - 1]" identifier [ (binary_expression "uVar47 - 1" identifier - number_literal) ]) = identifier) ;) (if_statement "if (uVar35 <= local_a0) {\n                  uVar35 = local_a0;\n                }" if (parenthesized_expression "(uVar35 <= local_a0)" ( (binary_expression "uVar35 <= local_a0" identifier <= identifier) )) (compound_statement "{\n                  uVar35 = local_a0;\n                }" { (expression_statement "uVar35 = local_a0;" (assignment_expression "uVar35 = local_a0" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_a0 = uVar35;" (assignment_expression "local_a0 = uVar35" identifier = identifier) ;) (expression_statement "local_b0 = (void *)0x0;" (assignment_expression "local_b0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (convert_debugging != 0) {\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }" if (parenthesized_expression "(convert_debugging != 0)" ( (binary_expression "convert_debugging != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar59 = (code *)isympp;\n          local_b0 = read_debugging_info(ibfd,isympp,local_100,0);\n        }" { (expression_statement "pcVar59 = (code *)isympp;" (assignment_expression "pcVar59 = (code *)isympp" identifier = (cast_expression "(code *)isympp" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_b0 = read_debugging_info(ibfd,isympp,local_100,0);" (assignment_expression "local_b0 = read_debugging_info(ibfd,isympp,local_100,0)" identifier = (call_expression "read_debugging_info(ibfd,isympp,local_100,0)" identifier (argument_list "(ibfd,isympp,local_100,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }" if (parenthesized_expression "(strip_symbols - STRIP_DEBUG < 6)" ( (binary_expression "strip_symbols - STRIP_DEBUG < 6" (binary_expression "strip_symbols - STRIP_DEBUG" identifier - identifier) < number_literal) )) (compound_statement "{\nLAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }\n          ppaVar28 = (asymbol **)xmalloc();\n          local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;\n          osympp = ppaVar28;\n          if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }\n          if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }\n          bVar19 = convert_debugging;\n          ppaVar28[local_100] = (asymbol *)0x0;\n          local_100 = local_100 & 0xffffffff;\n          if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }" { (labeled_statement "LAB_00109b5a:\n          if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }" statement_identifier : (if_statement "if (strip_symbols != STRIP_ALL) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }" if (parenthesized_expression "(strip_symbols != STRIP_ALL)" ( (binary_expression "strip_symbols != STRIP_ALL" identifier != identifier) )) (compound_statement "{\nLAB_00109b5f:\n            bfd_set_error(0);\n            pcVar59 = mark_symbols_used_in_relocations;\n            bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n            iVar17 = bfd_get_error();\n            if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }\n          }" { (labeled_statement "LAB_00109b5f:\n            bfd_set_error(0);" statement_identifier : (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (expression_statement "pcVar59 = mark_symbols_used_in_relocations;" (assignment_expression "pcVar59 = mark_symbols_used_in_relocations" identifier = identifier) ;) (expression_statement "bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);" (call_expression "bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp)" identifier (argument_list "(ibfd,mark_symbols_used_in_relocations,isympp)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = bfd_get_error();" (assignment_expression "iVar17 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar17 != 0) {\n              status = 1;\n              return 0;\n            }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              status = 1;\n              return 0;\n            }" { (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "ppaVar28 = (asymbol **)xmalloc();" (assignment_expression "ppaVar28 = (asymbol **)xmalloc()" identifier = (cast_expression "(asymbol **)xmalloc()" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42;" (assignment_expression "local_b8._0_4_ = *(uint *)&ibfd->field_0x44 >> 5 & 0x42" (field_expression "local_b8._0_4_" identifier . field_identifier) = (binary_expression "*(uint *)&ibfd->field_0x44 >> 5 & 0x42" (binary_expression "*(uint *)&ibfd->field_0x44 >> 5" (pointer_expression "*(uint *)&ibfd->field_0x44" * (cast_expression "(uint *)&ibfd->field_0x44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ibfd->field_0x44" & (field_expression "ibfd->field_0x44" identifier -> field_identifier)))) >> number_literal) & number_literal)) ;) (expression_statement "osympp = ppaVar28;" (assignment_expression "osympp = ppaVar28" identifier = identifier) ;) (if_statement "if (local_100 != 0) {\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n            ppaVar1 = isympp + local_100;\n            local_110 = isympp;\n            local_100 = 0;\n            do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);\n          }" { (expression_statement "ppaVar1 = isympp + local_100;" (assignment_expression "ppaVar1 = isympp + local_100" identifier = (binary_expression "isympp + local_100" identifier + identifier)) ;) (expression_statement "local_110 = isympp;" (assignment_expression "local_110 = isympp" identifier = identifier) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while (ppaVar1 != local_110);" do (compound_statement "{\n              iVar17 = add_symbols;\n              paVar25 = (asection *)*local_110;\n              pbVar37 = paVar25->prev;\n              paVar33 = *(asection **)&paVar25->id;\n              lVar57 = *(long *)&paVar25->flags;\n              if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);\n              paVar43 = paVar33;\n              if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }\n              pcVar23 = prefix_symbols_string;\n              cVar3 = ibfd->xvec->symbol_leading_char;\n              if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }\nLAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;\n              if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            }" { (expression_statement "iVar17 = add_symbols;" (assignment_expression "iVar17 = add_symbols" identifier = identifier) ;) (expression_statement "paVar25 = (asection *)*local_110;" (assignment_expression "paVar25 = (asection *)*local_110" identifier = (cast_expression "(asection *)*local_110" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_110" * identifier))) ;) (expression_statement "pbVar37 = paVar25->prev;" (assignment_expression "pbVar37 = paVar25->prev" identifier = (field_expression "paVar25->prev" identifier -> field_identifier)) ;) (expression_statement "paVar33 = *(asection **)&paVar25->id;" (assignment_expression "paVar33 = *(asection **)&paVar25->id" identifier = (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier))))) ;) (expression_statement "lVar57 = *(long *)&paVar25->flags;" (assignment_expression "lVar57 = *(long *)&paVar25->flags" identifier = (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier))))) ;) (if_statement "if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)) {\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0))" ( (binary_expression "((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n                 (pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)" (parenthesized_expression "((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols))" ( (binary_expression "(add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)" (parenthesized_expression "(add_sym_list != (addsym_node *)0x0)" ( (binary_expression "add_sym_list != (addsym_node *)0x0" identifier != (cast_expression "(addsym_node *)0x0" ( (type_descriptor "addsym_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < add_symbols)" ( (binary_expression "0 < add_symbols" number_literal < identifier) ))) )) && (parenthesized_expression "(pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0)" ( (comma_expression "pcVar23 = add_sym_list->othersym, pcVar23 != (char *)0x0" (assignment_expression "pcVar23 = add_sym_list->othersym" identifier = (field_expression "add_sym_list->othersym" identifier -> field_identifier)) , (binary_expression "pcVar23 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                iVar20 = 0;\n                paVar53 = add_sym_list;\n                while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar23);\n                paVar53->othersym = "";\n                pcVar59 = (code *)obfd;\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "paVar53 = add_sym_list;" (assignment_expression "paVar53 = add_sym_list" identifier = identifier) ;) (while_statement "while (pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0) {\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" while (parenthesized_expression "(pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0)" ( (comma_expression "pcVar59 = (code *)paVar33, iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0" (assignment_expression "pcVar59 = (code *)paVar33" identifier = (cast_expression "(code *)paVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "iVar22 = strcmp(pcVar23,(char *)paVar33),\n                      iVar22 != 0" (assignment_expression "iVar22 = strcmp(pcVar23,(char *)paVar33)" identifier = (call_expression "strcmp(pcVar23,(char *)paVar33)" identifier (argument_list "(pcVar23,(char *)paVar33)" ( identifier , (cast_expression "(char *)paVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar22 != 0" identifier != number_literal))) )) (compound_statement "{\n                  iVar20 = iVar20 + 1;\n                  paVar53 = paVar53->next;\n                  if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" { (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "paVar53 = paVar53->next;" (assignment_expression "paVar53 = paVar53->next" identifier = (field_expression "paVar53->next" identifier -> field_identifier)) ;) (if_statement "if ((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))\n                  goto LAB_00109cb0;" if (parenthesized_expression "((iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0))" ( (binary_expression "(iVar20 == iVar17) || (pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0)" (parenthesized_expression "(iVar20 == iVar17)" ( (binary_expression "iVar20 == iVar17" identifier == identifier) )) || (parenthesized_expression "(pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0)" ( (comma_expression "pcVar23 = paVar53->othersym, pcVar23 == (char *)0x0" (assignment_expression "pcVar23 = paVar53->othersym" identifier = (field_expression "paVar53->othersym" identifier -> field_identifier)) , (binary_expression "pcVar23 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109cb0;" goto statement_identifier ;)) })) (expression_statement "free(pcVar23);" (call_expression "free(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "paVar53->othersym = "";" (assignment_expression "paVar53->othersym = """ (field_expression "paVar53->othersym" identifier -> field_identifier) = (string_literal """" " ")) ;) (expression_statement "pcVar59 = (code *)obfd;" (assignment_expression "pcVar59 = (code *)obfd" identifier = (cast_expression "(code *)obfd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "paVar29 = create_new_symbol(paVar53,obfd);" (assignment_expression "paVar29 = create_new_symbol(paVar53,obfd)" identifier = (call_expression "create_new_symbol(paVar53,obfd)" identifier (argument_list "(paVar53,obfd)" ( identifier , identifier )))) ;) (expression_statement "ppaVar28[local_100] = paVar29;" (assignment_expression "ppaVar28[local_100] = paVar29" (subscript_expression "ppaVar28[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00109cb0:\n              lVar30 = htab_elements(redefine_specific_htab);" statement_identifier : (expression_statement "lVar30 = htab_elements(redefine_specific_htab);" (assignment_expression "lVar30 = htab_elements(redefine_specific_htab)" identifier = (call_expression "htab_elements(redefine_specific_htab)" identifier (argument_list "(redefine_specific_htab)" ( identifier )))) ;)) (expression_statement "paVar43 = paVar33;" (assignment_expression "paVar43 = paVar33" identifier = identifier) ;) (if_statement "if ((lVar30 != 0) || (section_rename_list != (section_rename *)0x0)) {\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }" if (parenthesized_expression "((lVar30 != 0) || (section_rename_list != (section_rename *)0x0))" ( (binary_expression "(lVar30 != 0) || (section_rename_list != (section_rename *)0x0)" (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) || (parenthesized_expression "(section_rename_list != (section_rename *)0x0)" ( (binary_expression "section_rename_list != (section_rename *)0x0" identifier != (cast_expression "(section_rename *)0x0" ( (type_descriptor "section_rename *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                local_50._0_4_ = 0;\n                local_50._4_4_ = 0;\n                pcVar59 = (code *)&contents;\n                contents = (bfd_byte *)paVar33;\n                lVar30 = htab_find(redefine_specific_htab);\n                if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }\n                *(asection **)&paVar25->id = paVar43;\n              }" { (expression_statement "local_50._0_4_ = 0;" (assignment_expression "local_50._0_4_ = 0" (field_expression "local_50._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_50._4_4_ = 0;" (assignment_expression "local_50._4_4_ = 0" (field_expression "local_50._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "pcVar59 = (code *)&contents;" (assignment_expression "pcVar59 = (code *)&contents" identifier = (cast_expression "(code *)&contents" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&contents" & identifier))) ;) (expression_statement "contents = (bfd_byte *)paVar33;" (assignment_expression "contents = (bfd_byte *)paVar33" identifier = (cast_expression "(bfd_byte *)paVar33" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "lVar30 = htab_find(redefine_specific_htab);" (assignment_expression "lVar30 = htab_find(redefine_specific_htab)" identifier = (call_expression "htab_find(redefine_specific_htab)" identifier (argument_list "(redefine_specific_htab)" ( identifier )))) ;) (if_statement "if (((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)) {\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0))" ( (binary_expression "((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)) &&\n                   (psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)" (parenthesized_expression "((lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43))" ( (binary_expression "(lVar30 == 0) || (paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)" (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) || (parenthesized_expression "(paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43)" ( (comma_expression "paVar43 = *(asection **)(lVar30 + 8), paVar33 == paVar43" (assignment_expression "paVar43 = *(asection **)(lVar30 + 8)" identifier = (pointer_expression "*(asection **)(lVar30 + 8)" * (cast_expression "(asection **)(lVar30 + 8)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar30 + 8)" ( (binary_expression "lVar30 + 8" identifier + number_literal) ))))) , (binary_expression "paVar33 == paVar43" identifier == identifier)) ))) )) && (parenthesized_expression "(psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0)" ( (comma_expression "psVar15 = section_rename_list, ((ulong)pbVar37 & 0x100) != 0" (assignment_expression "psVar15 = section_rename_list" identifier = identifier) , (binary_expression "((ulong)pbVar37 & 0x100) != 0" (parenthesized_expression "((ulong)pbVar37 & 0x100)" ( (binary_expression "(ulong)pbVar37 & 0x100" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }\n                }" { (for_statement "for (; paVar43 = paVar33, psVar15 != (section_rename *)0x0;\n                      psVar15 = psVar15->next) {\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }" for ( ; (comma_expression "paVar43 = paVar33, psVar15 != (section_rename *)0x0" (assignment_expression "paVar43 = paVar33" identifier = identifier) , (binary_expression "psVar15 != (section_rename *)0x0" identifier != (cast_expression "(section_rename *)0x0" ( (type_descriptor "section_rename *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar15 = psVar15->next" identifier = (field_expression "psVar15->next" identifier -> field_identifier)) ) (compound_statement "{\n                    pcVar59 = (code *)paVar33;\n                    iVar17 = strcmp(psVar15->old_name,(char *)paVar33);\n                    if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }\n                  }" { (expression_statement "pcVar59 = (code *)paVar33;" (assignment_expression "pcVar59 = (code *)paVar33" identifier = (cast_expression "(code *)paVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar17 = strcmp(psVar15->old_name,(char *)paVar33);" (assignment_expression "iVar17 = strcmp(psVar15->old_name,(char *)paVar33)" identifier = (call_expression "strcmp(psVar15->old_name,(char *)paVar33)" identifier (argument_list "(psVar15->old_name,(char *)paVar33)" ( (field_expression "psVar15->old_name" identifier -> field_identifier) , (cast_expression "(char *)paVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar17 == 0) {\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                      paVar43 = (asection *)psVar15->new_name;\n                      break;\n                    }" { (expression_statement "paVar43 = (asection *)psVar15->new_name;" (assignment_expression "paVar43 = (asection *)psVar15->new_name" identifier = (cast_expression "(asection *)psVar15->new_name" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar15->new_name" identifier -> field_identifier))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "*(asection **)&paVar25->id = paVar43;" (assignment_expression "*(asection **)&paVar25->id = paVar43" (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "pcVar23 = prefix_symbols_string;" (assignment_expression "pcVar23 = prefix_symbols_string" identifier = identifier) ;) (expression_statement "cVar3 = ibfd->xvec->symbol_leading_char;" (assignment_expression "cVar3 = ibfd->xvec->symbol_leading_char" identifier = (field_expression "ibfd->xvec->symbol_leading_char" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (*(char *)&paVar43->name == cVar3) {\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }\n              else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }" if (parenthesized_expression "(*(char *)&paVar43->name == cVar3)" ( (binary_expression "*(char *)&paVar43->name == cVar3" (pointer_expression "*(char *)&paVar43->name" * (cast_expression "(char *)&paVar43->name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar43->name" & (field_expression "paVar43->name" identifier -> field_identifier)))) == identifier) )) (compound_statement "{\n                if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }\n                cVar3 = obfd->xvec->symbol_leading_char;\n                if (cVar3 == '\0') goto LAB_00109f88;\n                if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }\n                *(char *)&paVar43->name = cVar3;\n                *(asection **)&paVar25->id = paVar43;\n              }" { (if_statement "if (change_leading_char == 0) {\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }" if (parenthesized_expression "(change_leading_char == 0)" ( (binary_expression "change_leading_char == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;\nLAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109d39;\n                }" { (if_statement "if ((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))\n                  goto LAB_00109d39;" if (parenthesized_expression "((remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))))" ( (binary_expression "(remove_leading_char == 0) ||\n                     (((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)))" (parenthesized_expression "(remove_leading_char == 0)" ( (binary_expression "remove_leading_char == 0" identifier == number_literal) )) || (parenthesized_expression "(((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)))" ( (parenthesized_expression "((((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))" ( (binary_expression "(((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)) &&\n                      ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)" (parenthesized_expression "(((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678))" ( (binary_expression "((ulong)pbVar37 & 0x82) == 0 && (lVar57 != 0x12c678)" (binary_expression "((ulong)pbVar37 & 0x82) == 0" (parenthesized_expression "((ulong)pbVar37 & 0x82)" ( (binary_expression "(ulong)pbVar37 & 0x82" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(lVar57 != 0x12c678)" ( (binary_expression "lVar57 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10)" ( (binary_expression "*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)&paVar25->flags + 0x21)" * (cast_expression "(byte *)(*(long *)&paVar25->flags + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)&paVar25->flags + 0x21)" ( (binary_expression "*(long *)&paVar25->flags + 0x21" (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;)) (labeled_statement "LAB_00109f88:\n                  paVar43 = (asection *)((long)&paVar43->name + 1);" statement_identifier : (expression_statement "paVar43 = (asection *)((long)&paVar43->name + 1);" (assignment_expression "paVar43 = (asection *)((long)&paVar43->name + 1)" identifier = (cast_expression "(asection *)((long)&paVar43->name + 1)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar43->name + 1)" ( (binary_expression "(long)&paVar43->name + 1" (cast_expression "(long)&paVar43->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar43->name" & (field_expression "paVar43->name" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "*(asection **)&paVar25->id = paVar43;" (assignment_expression "*(asection **)&paVar25->id = paVar43" (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier)))) = identifier) ;) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;) })) (expression_statement "cVar3 = obfd->xvec->symbol_leading_char;" (assignment_expression "cVar3 = obfd->xvec->symbol_leading_char" identifier = (field_expression "obfd->xvec->symbol_leading_char" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (cVar3 == '\0') goto LAB_00109f88;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00109f88;" goto statement_identifier ;)) (if_statement "if (prefix_symbols_string != (char *)0x0) {\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }" if (parenthesized_expression "(prefix_symbols_string != (char *)0x0)" ( (binary_expression "prefix_symbols_string != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  paVar43 = (asection *)((long)&paVar43->name + 1);\n                  *(asection **)&paVar25->id = paVar43;\n                  goto LAB_00109fa6;\n                }" { (expression_statement "paVar43 = (asection *)((long)&paVar43->name + 1);" (assignment_expression "paVar43 = (asection *)((long)&paVar43->name + 1)" identifier = (cast_expression "(asection *)((long)&paVar43->name + 1)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar43->name + 1)" ( (binary_expression "(long)&paVar43->name + 1" (cast_expression "(long)&paVar43->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar43->name" & (field_expression "paVar43->name" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(asection **)&paVar25->id = paVar43;" (assignment_expression "*(asection **)&paVar25->id = paVar43" (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier)))) = identifier) ;) (goto_statement "goto LAB_00109fa6;" goto statement_identifier ;) })) (expression_statement "*(char *)&paVar43->name = cVar3;" (assignment_expression "*(char *)&paVar43->name = cVar3" (pointer_expression "*(char *)&paVar43->name" * (cast_expression "(char *)&paVar43->name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar43->name" & (field_expression "paVar43->name" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(asection **)&paVar25->id = paVar43;" (assignment_expression "*(asection **)&paVar25->id = paVar43" (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier)))) = identifier) ;) }) (else_clause "else {\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }" else (compound_statement "{\n                if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }\n                paVar43 = paVar34;\n                pcVar23 = prefix_symbols_string;\n                if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }\n                strcpy((char *)paVar33,(char *)pcVar59);\n                *(asection **)&paVar25->id = paVar43;\n              }" { (if_statement "if (((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')) {\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }\n                else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }" if (parenthesized_expression "(((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0'))" ( (binary_expression "((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||\n                   (cVar3 != '\0')" (parenthesized_expression "((change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0'))" ( (binary_expression "(change_leading_char == 0) || (obfd->xvec->symbol_leading_char == '\0')" (parenthesized_expression "(change_leading_char == 0)" ( (binary_expression "change_leading_char == 0" identifier == number_literal) )) || (parenthesized_expression "(obfd->xvec->symbol_leading_char == '\0')" ( (binary_expression "obfd->xvec->symbol_leading_char == '\0'" (field_expression "obfd->xvec->symbol_leading_char" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar34 = paVar33;\n                  pcVar59 = (code *)paVar43;\n                }" { (labeled_statement "LAB_00109d39:\n                  if (pcVar23 == (char *)0x0) goto LAB_00109da6;" statement_identifier : (if_statement "if (pcVar23 == (char *)0x0) goto LAB_00109da6;" if (parenthesized_expression "(pcVar23 == (char *)0x0)" ( (binary_expression "pcVar23 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00109da6;" goto statement_identifier ;))) (expression_statement "sVar31 = strlen(pcVar23);" (assignment_expression "sVar31 = strlen(pcVar23)" identifier = (call_expression "strlen(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "sVar32 = strlen((char *)paVar43);" (assignment_expression "sVar32 = strlen((char *)paVar43)" identifier = (call_expression "strlen((char *)paVar43)" identifier (argument_list "((char *)paVar43)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32);" (assignment_expression "paVar33 = (asection *)xmalloc(sVar31 + 2 + sVar32)" identifier = (cast_expression "(asection *)xmalloc(sVar31 + 2 + sVar32)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar31 + 2 + sVar32)" identifier (argument_list "(sVar31 + 2 + sVar32)" ( (binary_expression "sVar31 + 2 + sVar32" (binary_expression "sVar31 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "paVar34 = paVar33;" (assignment_expression "paVar34 = paVar33" identifier = identifier) ;) (expression_statement "pcVar59 = (code *)paVar43;" (assignment_expression "pcVar59 = (code *)paVar43" identifier = (cast_expression "(code *)paVar43" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }" else (compound_statement "{\nLAB_00109fa6:\n                  sVar31 = strlen(pcVar23);\n                  sVar32 = strlen((char *)paVar43);\n                  paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);\n                  paVar33 = (asection *)((long)&paVar34->name + 1);\n                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;\n                  pcVar59 = (code *)paVar43;\n                }" { (labeled_statement "LAB_00109fa6:\n                  sVar31 = strlen(pcVar23);" statement_identifier : (expression_statement "sVar31 = strlen(pcVar23);" (assignment_expression "sVar31 = strlen(pcVar23)" identifier = (call_expression "strlen(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier )))) ;)) (expression_statement "sVar32 = strlen((char *)paVar43);" (assignment_expression "sVar32 = strlen((char *)paVar43)" identifier = (call_expression "strlen((char *)paVar43)" identifier (argument_list "((char *)paVar43)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32);" (assignment_expression "paVar34 = (asection *)xmalloc(sVar31 + 2 + sVar32)" identifier = (cast_expression "(asection *)xmalloc(sVar31 + 2 + sVar32)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar31 + 2 + sVar32)" identifier (argument_list "(sVar31 + 2 + sVar32)" ( (binary_expression "sVar31 + 2 + sVar32" (binary_expression "sVar31 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "paVar33 = (asection *)((long)&paVar34->name + 1);" (assignment_expression "paVar33 = (asection *)((long)&paVar34->name + 1)" identifier = (cast_expression "(asection *)((long)&paVar34->name + 1)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar34->name + 1)" ( (binary_expression "(long)&paVar34->name + 1" (cast_expression "(long)&paVar34->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar34->name" & (field_expression "paVar34->name" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(char *)&paVar34->name = obfd->xvec->symbol_leading_char;" (assignment_expression "*(char *)&paVar34->name = obfd->xvec->symbol_leading_char" (pointer_expression "*(char *)&paVar34->name" * (cast_expression "(char *)&paVar34->name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar34->name" & (field_expression "paVar34->name" identifier -> field_identifier)))) = (field_expression "obfd->xvec->symbol_leading_char" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar59 = (code *)paVar43;" (assignment_expression "pcVar59 = (code *)paVar43" identifier = (cast_expression "(code *)paVar43" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "paVar43 = paVar34;" (assignment_expression "paVar43 = paVar34" identifier = identifier) ;) (expression_statement "pcVar23 = prefix_symbols_string;" (assignment_expression "pcVar23 = prefix_symbols_string" identifier = identifier) ;) (if_statement "if (prefix_symbols_string != (char *)0x0) {\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }" if (parenthesized_expression "(prefix_symbols_string != (char *)0x0)" ( (binary_expression "prefix_symbols_string != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  strcpy((char *)paVar33,prefix_symbols_string);\n                  sVar31 = strlen(pcVar23);\n                  paVar33 = (asection *)((long)&paVar33->name + sVar31);\n                }" { (expression_statement "strcpy((char *)paVar33,prefix_symbols_string);" (call_expression "strcpy((char *)paVar33,prefix_symbols_string)" identifier (argument_list "((char *)paVar33,prefix_symbols_string)" ( (cast_expression "(char *)paVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar31 = strlen(pcVar23);" (assignment_expression "sVar31 = strlen(pcVar23)" identifier = (call_expression "strlen(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "paVar33 = (asection *)((long)&paVar33->name + sVar31);" (assignment_expression "paVar33 = (asection *)((long)&paVar33->name + sVar31)" identifier = (cast_expression "(asection *)((long)&paVar33->name + sVar31)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar33->name + sVar31)" ( (binary_expression "(long)&paVar33->name + sVar31" (cast_expression "(long)&paVar33->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar33->name" & (field_expression "paVar33->name" identifier -> field_identifier))) + identifier) )))) ;) })) (expression_statement "strcpy((char *)paVar33,(char *)pcVar59);" (call_expression "strcpy((char *)paVar33,(char *)pcVar59)" identifier (argument_list "((char *)paVar33,(char *)pcVar59)" ( (cast_expression "(char *)paVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pcVar59" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "*(asection **)&paVar25->id = paVar43;" (assignment_expression "*(asection **)&paVar25->id = paVar43" (pointer_expression "*(asection **)&paVar25->id" * (cast_expression "(asection **)&paVar25->id" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->id" & (field_expression "paVar25->id" identifier -> field_identifier)))) = identifier) ;) }))) (labeled_statement "LAB_00109da6:\n              if (strip_symbols == STRIP_ALL) goto LAB_00109e38;" statement_identifier : (if_statement "if (strip_symbols == STRIP_ALL) goto LAB_00109e38;" if (parenthesized_expression "(strip_symbols == STRIP_ALL)" ( (binary_expression "strip_symbols == STRIP_ALL" identifier == identifier) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;))) (if_statement "if (((ulong)pbVar37 & 0x20) == 0) {\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }\n              else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }" if (parenthesized_expression "(((ulong)pbVar37 & 0x20) == 0)" ( (binary_expression "((ulong)pbVar37 & 0x20) == 0" (parenthesized_expression "((ulong)pbVar37 & 0x20)" ( (binary_expression "(ulong)pbVar37 & 0x20" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;\n              }" { (if_statement "if ((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))\n                {\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }\n                else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }" if (parenthesized_expression "((((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0))" ( (binary_expression "(((ulong)pbVar37 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0)" (parenthesized_expression "(((ulong)pbVar37 & 0x100) == 0)" ( (binary_expression "((ulong)pbVar37 & 0x100) == 0" (parenthesized_expression "((ulong)pbVar37 & 0x100)" ( (binary_expression "(ulong)pbVar37 & 0x100" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0)" ( (binary_expression "(*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20)" ( (binary_expression "*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18) & 0x20" (pointer_expression "*(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18)" * (cast_expression "(byte *)(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18)" ( (binary_expression "**(long **)(*(long *)&paVar25->flags + 0x100) + 0x18" (pointer_expression "**(long **)(*(long *)&paVar25->flags + 0x100)" * (pointer_expression "*(long **)(*(long *)&paVar25->flags + 0x100)" * (cast_expression "(long **)(*(long *)&paVar25->flags + 0x100)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&paVar25->flags + 0x100)" ( (binary_expression "*(long *)&paVar25->flags + 0x100" (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                  if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;\n                }" { (if_statement "if ((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)) {\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }\n                  else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;" if (parenthesized_expression "((((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49))" ( (binary_expression "(((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))) ||\n                     (iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)" (parenthesized_expression "(((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0))))" ( (binary_expression "((uint)local_b8 == 0) &&\n                      ((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))" (parenthesized_expression "((uint)local_b8 == 0)" ( (binary_expression "(uint)local_b8 == 0" (cast_expression "(uint)local_b8" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) && (parenthesized_expression "((((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)))" ( (parenthesized_expression "(((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0))" ( (binary_expression "((ulong)pbVar37 & 0x82) != 0 ||\n                       ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)" (binary_expression "((ulong)pbVar37 & 0x82) != 0" (parenthesized_expression "((ulong)pbVar37 & 0x82)" ( (binary_expression "(ulong)pbVar37 & 0x82" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10)" ( (binary_expression "*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)&paVar25->flags + 0x21)" * (cast_expression "(byte *)(*(long *)&paVar25->flags + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)&paVar25->flags + 0x21)" ( (binary_expression "*(long *)&paVar25->flags + 0x21" (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49)" ( (comma_expression "iVar17 = bfd_decode_symclass(paVar25), iVar17 == 0x49" (assignment_expression "iVar17 = bfd_decode_symclass(paVar25)" identifier = (call_expression "bfd_decode_symclass(paVar25)" identifier (argument_list "(paVar25)" ( identifier )))) , (binary_expression "iVar17 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;\n                    bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                    if (bVar19 == 0) goto LAB_00109e20;\n                  }" { (labeled_statement "LAB_0010a060:\n                    pcVar59 = (code *)strip_specific_htab;" statement_identifier : (expression_statement "pcVar59 = (code *)strip_specific_htab;" (assignment_expression "pcVar59 = (code *)strip_specific_htab" identifier = (cast_expression "(code *)strip_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier (argument_list "((char *)paVar43,strip_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar19 == 0) goto LAB_00109e20;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e20;" goto statement_identifier ;)) }) (else_clause "else if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;" else (if_statement "if (((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)) {\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;" if (parenthesized_expression "(((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0))" ( (binary_expression "((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)) &&\n                          ((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)" (parenthesized_expression "((((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678))" ( (binary_expression "(((ulong)pbVar37 & 0x82) == 0) && (lVar57 != 0x12c678)" (parenthesized_expression "(((ulong)pbVar37 & 0x82) == 0)" ( (binary_expression "((ulong)pbVar37 & 0x82) == 0" (parenthesized_expression "((ulong)pbVar37 & 0x82)" ( (binary_expression "(ulong)pbVar37 & 0x82" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar57 != 0x12c678)" ( (binary_expression "lVar57 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10)" ( (binary_expression "*(byte *)(*(long *)&paVar25->flags + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)&paVar25->flags + 0x21)" * (cast_expression "(byte *)(*(long *)&paVar25->flags + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)&paVar25->flags + 0x21)" ( (binary_expression "*(long *)&paVar25->flags + 0x21" (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar17 = convert_debugging;\n                    if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }\n                  }" { (if_statement "if (((ulong)pbVar37 & 4) == 0) {\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" if (parenthesized_expression "(((ulong)pbVar37 & 4) == 0)" ( (binary_expression "((ulong)pbVar37 & 4) == 0" (parenthesized_expression "((ulong)pbVar37 & 4)" ( (binary_expression "(ulong)pbVar37 & 4" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                      if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" { (if_statement "if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)) {\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" if (parenthesized_expression "(((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0))" ( (binary_expression "((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)) ||\n                         (*(long *)(lVar30 + 0x40) == 0)" (parenthesized_expression "((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0))" ( (binary_expression "(ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                          (lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)" (parenthesized_expression "(ibfd->xvec->flavour != bfd_target_coff_flavour)" ( (binary_expression "ibfd->xvec->flavour != bfd_target_coff_flavour" (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier) != identifier) )) || (parenthesized_expression "(lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0)" ( (comma_expression "lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0), lVar30 == 0" (assignment_expression "lVar30 = *(long *)(*(long *)&paVar25->flags + 0xe0)" identifier = (pointer_expression "*(long *)(*(long *)&paVar25->flags + 0xe0)" * (cast_expression "(long *)(*(long *)&paVar25->flags + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)&paVar25->flags + 0xe0)" ( (binary_expression "*(long *)&paVar25->flags + 0xe0" (pointer_expression "*(long *)&paVar25->flags" * (cast_expression "(long *)&paVar25->flags" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) + number_literal) ))))) , (binary_expression "lVar30 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(*(long *)(lVar30 + 0x40) == 0)" ( (binary_expression "*(long *)(lVar30 + 0x40) == 0" (pointer_expression "*(long *)(lVar30 + 0x40)" * (cast_expression "(long *)(lVar30 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar30 + 0x40)" ( (binary_expression "lVar30 + 0x40" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                        if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;\n                        if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" { (if_statement "if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                        goto LAB_00109e38;" if (parenthesized_expression "((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))" ( (binary_expression "(strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL)" (parenthesized_expression "(strip_symbols == STRIP_UNNEEDED)" ( (binary_expression "strip_symbols == STRIP_UNNEEDED" identifier == identifier) )) || (parenthesized_expression "(discard_locals == LOCALS_ALL)" ( (binary_expression "discard_locals == LOCALS_ALL" identifier == identifier) ))) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;)) (if_statement "if (discard_locals == LOCALS_START_L) {\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }" if (parenthesized_expression "(discard_locals == LOCALS_START_L)" ( (binary_expression "discard_locals == LOCALS_START_L" identifier == identifier) )) (compound_statement "{\n                          pcVar59 = (code *)paVar25;\n                          iVar17 = bfd_is_local_label(ibfd);\n                          goto joined_r0x0010aafb;\n                        }" { (expression_statement "pcVar59 = (code *)paVar25;" (assignment_expression "pcVar59 = (code *)paVar25" identifier = (cast_expression "(code *)paVar25" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar17 = bfd_is_local_label(ibfd);" (assignment_expression "iVar17 = bfd_is_local_label(ibfd)" identifier = (call_expression "bfd_is_local_label(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (goto_statement "goto joined_r0x0010aafb;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;) })) (expression_statement "iVar17 = convert_debugging;" (assignment_expression "iVar17 = convert_debugging" identifier = identifier) ;) (if_statement "if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }" if (parenthesized_expression "(1 < strip_symbols - STRIP_DEBUG)" ( (binary_expression "1 < strip_symbols - STRIP_DEBUG" number_literal < (binary_expression "strip_symbols - STRIP_DEBUG" identifier - identifier)) )) (compound_statement "{\njoined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;\n                    }" { (labeled_statement "joined_r0x0010aafb:\n                      if (iVar17 == 0) goto LAB_0010a060;" statement_identifier : (if_statement "if (iVar17 == 0) goto LAB_0010a060;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;))) })) }) (else_clause "else if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;" else (if_statement "if (strip_symbols != STRIP_UNNEEDED) goto LAB_0010a060;" if (parenthesized_expression "(strip_symbols != STRIP_UNNEEDED)" ( (binary_expression "strip_symbols != STRIP_UNNEEDED" identifier != identifier) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;)))))) }) (else_clause "else {\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }" else (compound_statement "{\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                  if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }\nLAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;\n                  bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);\n                  if (bVar19 == 0) goto LAB_00109e61;\n                }" { (expression_statement "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier (argument_list "((char *)paVar43,strip_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar19 != 0) {\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\n                    pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);\n                    non_fatal(pcVar23,paVar43);\n                    status = 1;\n                  }" { (expression_statement "pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5)" identifier (argument_list "(0,\n                                                "not stripping symbol `%s\' because it is named in a relocation"\n                                                ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23,paVar43);" (call_expression "non_fatal(pcVar23,paVar43)" identifier (argument_list "(pcVar23,paVar43)" ( identifier , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e20:\n                  pcVar59 = (code *)strip_unneeded_htab;" statement_identifier : (expression_statement "pcVar59 = (code *)strip_unneeded_htab;" (assignment_expression "pcVar59 = (code *)strip_unneeded_htab" identifier = (cast_expression "(code *)strip_unneeded_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab);" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,strip_unneeded_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,strip_unneeded_htab)" identifier (argument_list "((char *)paVar43,strip_unneeded_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar19 == 0) goto LAB_00109e61;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00109e38:\n                if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;" statement_identifier : (if_statement "if (((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))\n                goto LAB_00109e61;" if (parenthesized_expression "(((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0))" ( (binary_expression "((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)) ||\n                   (pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0)" (parenthesized_expression "((keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0))" ( (binary_expression "(keep_file_symbols != 0) && (((ulong)pbVar37 & 0x4000) != 0)" (parenthesized_expression "(keep_file_symbols != 0)" ( (binary_expression "keep_file_symbols != 0" identifier != number_literal) )) && (parenthesized_expression "(((ulong)pbVar37 & 0x4000) != 0)" ( (binary_expression "((ulong)pbVar37 & 0x4000) != 0" (parenthesized_expression "((ulong)pbVar37 & 0x4000)" ( (binary_expression "(ulong)pbVar37 & 0x4000" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0)" ( (comma_expression "pcVar59 = (code *)keep_specific_htab,\n                   bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0" (assignment_expression "pcVar59 = (code *)keep_specific_htab" identifier = (cast_expression "(code *)keep_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab), bVar19 != 0" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,keep_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,keep_specific_htab)" identifier (argument_list "((char *)paVar43,keep_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar19 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;))) }) (else_clause "else {\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }" else (compound_statement "{\n                pcVar59 = (code *)strip_specific_htab;\n                bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);\n                if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }\nLAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);\n                if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }\n              }" { (expression_statement "pcVar59 = (code *)strip_specific_htab;" (assignment_expression "pcVar59 = (code *)strip_specific_htab" identifier = (cast_expression "(code *)strip_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab);" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,strip_specific_htab)" identifier (argument_list "((char *)paVar43,strip_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar19 != 0) {\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);\n                  pcVar59 = (code *)paVar43;\n                  non_fatal(pcVar23);\n                  status = 1;\n                }" { (expression_statement "pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5)" identifier (argument_list "(0,\n                                              "not stripping symbol `%s\' because it is named in a relocation"\n                                              ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "pcVar59 = (code *)paVar43;" (assignment_expression "pcVar59 = (code *)paVar43" identifier = (cast_expression "(code *)paVar43" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "non_fatal(pcVar23);" (call_expression "non_fatal(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e61:\n                bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);" statement_identifier : (expression_statement "bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59);" (assignment_expression "bVar19 = is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59)" identifier = (call_expression "is_strip_section(*(bfd **)&paVar25->flags,(asection *)pcVar59)" identifier (argument_list "(*(bfd **)&paVar25->flags,(asection *)pcVar59)" ( (pointer_expression "*(bfd **)&paVar25->flags" * (cast_expression "(bfd **)&paVar25->flags" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar25->flags" & (field_expression "paVar25->flags" identifier -> field_identifier)))) , (cast_expression "(asection *)pcVar59" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (bVar19 == 0) {\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }\n                  if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }\n                  ppaVar28[local_100] = (asymbol *)paVar25;\n                  local_100 = local_100 + 1;\n                }" { (if_statement "if ((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))) {\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }" if (parenthesized_expression "((((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0))))" ( (binary_expression "(((ulong)pbVar37 & 2) != 0) &&\n                     ((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))" (parenthesized_expression "(((ulong)pbVar37 & 2) != 0)" ( (binary_expression "((ulong)pbVar37 & 2) != 0" (parenthesized_expression "((ulong)pbVar37 & 2)" ( (binary_expression "(ulong)pbVar37 & 2" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)))" ( (parenthesized_expression "(weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0))" ( (binary_expression "weaken != 0 ||\n                      (pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)" (binary_expression "weaken != 0" identifier != number_literal) || (parenthesized_expression "(pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0)" ( (comma_expression "pcVar59 = (code *)weaken_specific_htab,\n                      bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0" (assignment_expression "pcVar59 = (code *)weaken_specific_htab" identifier = (cast_expression "(code *)weaken_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab),\n                      bVar19 != 0" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,weaken_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,weaken_specific_htab)" identifier (argument_list "((char *)paVar43,weaken_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar19 != 0" identifier != number_literal))) ))) )) ))) )) (compound_statement "{\n                    *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;\n                  }" { (expression_statement "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80;" (assignment_expression "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffd | 0x80" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) = (binary_expression "*(uint *)&paVar25->prev & 0xfffffffd | 0x80" (binary_expression "*(uint *)&paVar25->prev & 0xfffffffd" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) })) (if_statement "if (lVar57 != 0x12c678) {\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }" if (parenthesized_expression "(lVar57 != 0x12c678)" ( (binary_expression "lVar57 != 0x12c678" identifier != number_literal) )) (compound_statement "{\n                    if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }\n                    if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }\n                  }" { (if_statement "if ((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }" if (parenthesized_expression "((((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2))))))))" ( (binary_expression "(((ulong)pbVar37 & 0x82) != 0) &&\n                       (((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))" (parenthesized_expression "(((ulong)pbVar37 & 0x82) != 0)" ( (binary_expression "((ulong)pbVar37 & 0x82) != 0" (parenthesized_expression "((ulong)pbVar37 & 0x82)" ( (binary_expression "(ulong)pbVar37 & 0x82" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))))" ( (parenthesized_expression "((pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2))))))" ( (binary_expression "(pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))) ||\n                        ((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))" (parenthesized_expression "(pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0))))" ( (comma_expression "pcVar59 = (code *)localize_specific_htab,\n                         bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))" (assignment_expression "pcVar59 = (code *)localize_specific_htab" identifier = (cast_expression "(code *)localize_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab),\n                         bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,localize_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,localize_specific_htab)" identifier (argument_list "((char *)paVar43,localize_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar19 != 0 ||\n                         ((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))" (binary_expression "bVar19 != 0" identifier != number_literal) || (parenthesized_expression "((lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)))" ( (parenthesized_expression "(lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0))" ( (comma_expression "lVar57 = htab_elements(), lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)" (assignment_expression "lVar57 = htab_elements()" identifier = (call_expression "htab_elements()" identifier (argument_list "()" ( )))) , (binary_expression "lVar57 != 0 &&\n                          (pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)" (binary_expression "lVar57 != 0" identifier != number_literal) && (parenthesized_expression "(pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0)" ( (comma_expression "pcVar59 = (code *)keepglobal_specific_htab,\n                          bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0" (assignment_expression "pcVar59 = (code *)keepglobal_specific_htab" identifier = (cast_expression "(code *)keepglobal_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab),\n                          bVar19 == 0" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,keepglobal_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,keepglobal_specific_htab)" identifier (argument_list "((char *)paVar43,keepglobal_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar19 == 0" identifier == number_literal))) )))) )) ))))) )) || (parenthesized_expression "((localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))))" ( (parenthesized_expression "(localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2))))" ( (binary_expression "localize_hidden != 0 &&\n                         ((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))" (binary_expression "localize_hidden != 0" identifier != number_literal) && (parenthesized_expression "((((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)))" ( (parenthesized_expression "(((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2))" ( (binary_expression "((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)" (parenthesized_expression "((pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0))" ( (binary_expression "(pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)) &&\n                           (*(long *)(pcVar23 + 0xf8) != 0)" (parenthesized_expression "(pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5))" ( (comma_expression "pcVar23 = paVar25->name, pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)" (assignment_expression "pcVar23 = paVar25->name" identifier = (field_expression "paVar25->name" identifier -> field_identifier)) , (binary_expression "pcVar23 != (char *)0x0 &&\n                            (*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)" (binary_expression "pcVar23 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(*(int *)(*(long *)(pcVar23 + 8) + 8) == 5)" ( (binary_expression "*(int *)(*(long *)(pcVar23 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(pcVar23 + 8) + 8)" * (cast_expression "(int *)(*(long *)(pcVar23 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(pcVar23 + 8) + 8)" ( (binary_expression "*(long *)(pcVar23 + 8) + 8" (pointer_expression "*(long *)(pcVar23 + 8)" * (cast_expression "(long *)(pcVar23 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 8)" ( (binary_expression "pcVar23 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )))) )) && (parenthesized_expression "(*(long *)(pcVar23 + 0xf8) != 0)" ( (binary_expression "*(long *)(pcVar23 + 0xf8) != 0" (pointer_expression "*(long *)(pcVar23 + 0xf8)" * (cast_expression "(long *)(pcVar23 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xf8)" ( (binary_expression "pcVar23 + 0xf8" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1 < 2" (binary_expression "(*(byte *)((long)&paVar25->compressed_size + 1) & 3) - 1" (parenthesized_expression "(*(byte *)((long)&paVar25->compressed_size + 1) & 3)" ( (binary_expression "*(byte *)((long)&paVar25->compressed_size + 1) & 3" (pointer_expression "*(byte *)((long)&paVar25->compressed_size + 1)" * (cast_expression "(byte *)((long)&paVar25->compressed_size + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&paVar25->compressed_size + 1)" ( (binary_expression "(long)&paVar25->compressed_size + 1" (cast_expression "(long)&paVar25->compressed_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&paVar25->compressed_size" & (field_expression "paVar25->compressed_size" identifier -> field_identifier))) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;\n                    }" { (expression_statement "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1;" (assignment_expression "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xffffff7d | 1" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) = (binary_expression "*(uint *)&paVar25->prev & 0xffffff7d | 1" (binary_expression "*(uint *)&paVar25->prev & 0xffffff7d" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) })) (if_statement "if ((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)) {\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }" if (parenthesized_expression "((((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0))" ( (binary_expression "(((ulong)pbVar37 & 1) != 0) &&\n                       (pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)" (parenthesized_expression "(((ulong)pbVar37 & 1) != 0)" ( (binary_expression "((ulong)pbVar37 & 1) != 0" (parenthesized_expression "((ulong)pbVar37 & 1)" ( (binary_expression "(ulong)pbVar37 & 1" (cast_expression "(ulong)pbVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0)" ( (comma_expression "pcVar59 = (code *)globalize_specific_htab,\n                       bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0" (assignment_expression "pcVar59 = (code *)globalize_specific_htab" identifier = (cast_expression "(code *)globalize_specific_htab" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab),\n                       bVar19 != 0" (assignment_expression "bVar19 = is_specified_symbol((char *)paVar43,globalize_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)paVar43,globalize_specific_htab)" identifier (argument_list "((char *)paVar43,globalize_specific_htab)" ( (cast_expression "(char *)paVar43" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar19 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                      *(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;\n                    }" { (expression_statement "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2;" (assignment_expression "*(uint *)&paVar25->prev = *(uint *)&paVar25->prev & 0xfffffffe | 2" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) = (binary_expression "*(uint *)&paVar25->prev & 0xfffffffe | 2" (binary_expression "*(uint *)&paVar25->prev & 0xfffffffe" (pointer_expression "*(uint *)&paVar25->prev" * (cast_expression "(uint *)&paVar25->prev" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->prev" & (field_expression "paVar25->prev" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) })) })) (expression_statement "ppaVar28[local_100] = (asymbol *)paVar25;" (assignment_expression "ppaVar28[local_100] = (asymbol *)paVar25" (subscript_expression "ppaVar28[local_100]" identifier [ identifier ]) = (cast_expression "(asymbol *)paVar25" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_110 = local_110 + 1;" (assignment_expression "local_110 = local_110 + 1" identifier = (binary_expression "local_110 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppaVar1 != local_110)" ( (binary_expression "ppaVar1 != local_110" identifier != identifier) )) ;) })) (if_statement "if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }" if (parenthesized_expression "((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols))" ( (binary_expression "(add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)" (parenthesized_expression "(add_sym_list != (addsym_node *)0x0)" ( (binary_expression "add_sym_list != (addsym_node *)0x0" identifier != (cast_expression "(addsym_node *)0x0" ( (type_descriptor "addsym_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < add_symbols)" ( (binary_expression "0 < add_symbols" number_literal < identifier) ))) )) (compound_statement "{\n            lVar57 = 0;\n            paVar53 = add_sym_list;\n            do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);\n          }" { (expression_statement "lVar57 = 0;" (assignment_expression "lVar57 = 0" identifier = number_literal) ;) (expression_statement "paVar53 = add_sym_list;" (assignment_expression "paVar53 = add_sym_list" identifier = identifier) ;) (do_statement "do {\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            } while (lVar57 < add_symbols);" do (compound_statement "{\n              pcVar23 = paVar53->othersym;\n              if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }\n              lVar57 = lVar57 + 1;\n              paVar53 = paVar53->next;\n            }" { (expression_statement "pcVar23 = paVar53->othersym;" (assignment_expression "pcVar23 = paVar53->othersym" identifier = (field_expression "paVar53->othersym" identifier -> field_identifier)) ;) (if_statement "if (pcVar23 == (char *)0x0) {\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }" if (parenthesized_expression "(pcVar23 == (char *)0x0)" ( (binary_expression "pcVar23 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                paVar29 = create_new_symbol(paVar53,obfd);\n                ppaVar28[local_100] = paVar29;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "paVar29 = create_new_symbol(paVar53,obfd);" (assignment_expression "paVar29 = create_new_symbol(paVar53,obfd)" identifier = (call_expression "create_new_symbol(paVar53,obfd)" identifier (argument_list "(paVar53,obfd)" ( identifier , identifier )))) ;) (expression_statement "ppaVar28[local_100] = paVar29;" (assignment_expression "ppaVar28[local_100] = paVar29" (subscript_expression "ppaVar28[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }" else (if_statement "if (*pcVar23 != '\0') {\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }" if (parenthesized_expression "(*pcVar23 != '\0')" ( (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);\n                    /* WARNING: Subroutine does not return */\n                fatal(pcVar58,pcVar23);\n              }" { (expression_statement "pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"\'before=%s\' not found",5)" identifier = (cast_expression "(char *)dcgettext(0,"\'before=%s\' not found",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\'before=%s\' not found",5)" identifier (argument_list "(0,"\'before=%s\' not found",5)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "fatal(pcVar58,pcVar23);" (call_expression "fatal(pcVar58,pcVar23)" identifier (argument_list "(pcVar58,pcVar23)" ( identifier , identifier ))) ;) })))) (expression_statement "lVar57 = lVar57 + 1;" (assignment_expression "lVar57 = lVar57 + 1" identifier = (binary_expression "lVar57 + 1" identifier + number_literal)) ;) (expression_statement "paVar53 = paVar53->next;" (assignment_expression "paVar53 = paVar53->next" identifier = (field_expression "paVar53->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(lVar57 < add_symbols)" ( (binary_expression "lVar57 < add_symbols" identifier < identifier) )) ;) })) (expression_statement "bVar19 = convert_debugging;" (assignment_expression "bVar19 = convert_debugging" identifier = identifier) ;) (expression_statement "ppaVar28[local_100] = (asymbol *)0x0;" (assignment_expression "ppaVar28[local_100] = (asymbol *)0x0" (subscript_expression "ppaVar28[local_100]" identifier [ identifier ]) = (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_100 = local_100 & 0xffffffff;" (assignment_expression "local_100 = local_100 & 0xffffffff" identifier = (binary_expression "local_100 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((bVar19 != 0) && (local_b0 != (void *)0x0)) {\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" if (parenthesized_expression "((bVar19 != 0) && (local_b0 != (void *)0x0))" ( (binary_expression "(bVar19 != 0) && (local_b0 != (void *)0x0)" (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_b0 != (void *)0x0)" ( (binary_expression "local_b0 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            bVar6 = obfd->xvec->flavour;\n            if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }\n            bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);\n            if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }\n            lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n            lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n            if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar57 + 0x70) = 2;\n            *(undefined4 *)(lVar30 + 0x70) = 0;\n            iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);\n            if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" { (expression_statement "bVar6 = obfd->xvec->flavour;" (assignment_expression "bVar6 = obfd->xvec->flavour" identifier = (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)) {\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }" if (parenthesized_expression "((bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour))" ( (binary_expression "(bVar6 != bfd_target_coff_flavour) && (bVar6 != bfd_target_elf_flavour)" (parenthesized_expression "(bVar6 != bfd_target_coff_flavour)" ( (binary_expression "bVar6 != bfd_target_coff_flavour" identifier != identifier) )) && (parenthesized_expression "(bVar6 != bfd_target_elf_flavour)" ( (binary_expression "bVar6 != bfd_target_elf_flavour" identifier != identifier) ))) )) (compound_statement "{\n              pcVar23 = obfd->xvec->name;\n              pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n              status = 1;\n              return 0;\n            }" { (expression_statement "pcVar23 = obfd->xvec->name;" (assignment_expression "pcVar23 = obfd->xvec->name" identifier = (field_expression "obfd->xvec->name" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5)" identifier = (cast_expression "(char *)dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"don\'t know how to write debugging information for %s",\n                                          5)" identifier (argument_list "(0,"don\'t know how to write debugging information for %s",\n                                          5)" ( number_literal , (string_literal ""don\'t know how to write debugging information for %s"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents);" (assignment_expression "bVar19 = write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents)" identifier = (call_expression "write_stabs_in_sections_debugging_info\n                               (obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents)" identifier (argument_list "(obfd,local_b0,&syms,(bfd_size_type *)file_alignment,&strings,\n                                (bfd_size_type *)&contents)" ( identifier , identifier , (pointer_expression "&syms" & identifier) , (cast_expression "(bfd_size_type *)file_alignment" ( (type_descriptor "bfd_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&strings" & identifier) , (cast_expression "(bfd_size_type *)&contents" ( (type_descriptor "bfd_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&contents" & identifier)) )))) ;) (if_statement "if (bVar19 == 0) {\n              status = 1;\n              return 0;\n            }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n              status = 1;\n              return 0;\n            }" { (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108);" (assignment_expression "lVar57 = bfd_make_section_with_flags(obfd,".stab",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(obfd,".stab",0x2108)" identifier (argument_list "(obfd,".stab",0x2108)" ( identifier , (string_literal "".stab"" " string_content ") , number_literal )))) ;) (expression_statement "lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);" (assignment_expression "lVar30 = bfd_make_section_with_flags(obfd,".stabstr",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(obfd,".stabstr",0x2108)" identifier (argument_list "(obfd,".stabstr",0x2108)" ( identifier , (string_literal "".stabstr"" " string_content ") , number_literal )))) ;) (if_statement "if ((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }" if (parenthesized_expression "((((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0))" ( (binary_expression "(((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)) ||\n               (iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)" (parenthesized_expression "(((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0))" ( (binary_expression "((lVar57 == 0) || (lVar30 == 0)) ||\n                (iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)" (parenthesized_expression "((lVar57 == 0) || (lVar30 == 0))" ( (binary_expression "(lVar57 == 0) || (lVar30 == 0)" (parenthesized_expression "(lVar57 == 0)" ( (binary_expression "lVar57 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0)" ( (comma_expression "iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_), iVar17 == 0" (assignment_expression "iVar17 = bfd_set_section_size(obfd,lVar57,file_alignment._0_8_)" identifier = (call_expression "bfd_set_section_size(obfd,lVar57,file_alignment._0_8_)" identifier (argument_list "(obfd,lVar57,file_alignment._0_8_)" ( identifier , identifier , (field_expression "file_alignment._0_8_" identifier . field_identifier) )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0)" ( (comma_expression "iVar17 = bfd_set_section_size(obfd,lVar30,contents), iVar17 == 0" (assignment_expression "iVar17 = bfd_set_section_size(obfd,lVar30,contents)" identifier = (call_expression "bfd_set_section_size(obfd,lVar30,contents)" identifier (argument_list "(obfd,lVar30,contents)" ( identifier , identifier , identifier )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar23 = "can\'t create debugging section";\nLAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);\n              status = 1;\n              return 0;\n            }" { (expression_statement "pcVar23 = "can\'t create debugging section";" (assignment_expression "pcVar23 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) (labeled_statement "LAB_0010a991:\n              pcVar23 = (char *)dcgettext(0,pcVar23,5);" statement_identifier : (expression_statement "pcVar23 = (char *)dcgettext(0,pcVar23,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,pcVar23,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar23,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar23,5)" identifier (argument_list "(0,pcVar23,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(lVar57 + 0x70) = 2;" (assignment_expression "*(undefined4 *)(lVar57 + 0x70) = 2" (pointer_expression "*(undefined4 *)(lVar57 + 0x70)" * (cast_expression "(undefined4 *)(lVar57 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar57 + 0x70)" ( (binary_expression "lVar57 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar30 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(lVar30 + 0x70) = 0" (pointer_expression "*(undefined4 *)(lVar30 + 0x70)" * (cast_expression "(undefined4 *)(lVar30 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar30 + 0x70)" ( (binary_expression "lVar30 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_);" (assignment_expression "iVar17 = bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_)" identifier = (call_expression "bfd_set_section_contents(obfd,lVar57,syms,0,file_alignment._0_8_)" identifier (argument_list "(obfd,lVar57,syms,0,file_alignment._0_8_)" ( identifier , identifier , identifier , number_literal , (field_expression "file_alignment._0_8_" identifier . field_identifier) )))) ;) (if_statement "if ((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)) {\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" if (parenthesized_expression "((iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0))" ( (binary_expression "(iVar17 == 0) ||\n               (iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)" (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0)" ( (comma_expression "iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents), iVar17 == 0" (assignment_expression "iVar17 = bfd_set_section_contents(obfd,lVar30,strings,0,contents)" identifier = (call_expression "bfd_set_section_contents(obfd,lVar30,strings,0,contents)" identifier (argument_list "(obfd,lVar30,strings,0,contents)" ( identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar23 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" { (expression_statement "pcVar23 = "can\'t set debugging section contents";" (assignment_expression "pcVar23 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010a991;" goto statement_identifier ;) })) })) }) (else_clause "else {\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }" else (compound_statement "{\n          if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;\n          lVar57 = htab_elements(strip_specific_htab);\n          if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;\n        }" { (if_statement "if (localize_hidden != 0 || discard_locals != LOCALS_UNDEF) goto LAB_00109b5f;" if (parenthesized_expression "(localize_hidden != 0 || discard_locals != LOCALS_UNDEF)" ( (binary_expression "localize_hidden != 0 || discard_locals != LOCALS_UNDEF" (binary_expression "localize_hidden != 0" identifier != number_literal) || (binary_expression "discard_locals != LOCALS_UNDEF" identifier != identifier)) )) (goto_statement "goto LAB_00109b5f;" goto statement_identifier ;)) (expression_statement "lVar57 = htab_elements(strip_specific_htab);" (assignment_expression "lVar57 = htab_elements(strip_specific_htab)" identifier = (call_expression "htab_elements(strip_specific_htab)" identifier (argument_list "(strip_specific_htab)" ( identifier )))) ;) (if_statement "if ((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))) goto LAB_00109b5a;" if (parenthesized_expression "((((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0))))))" ( (binary_expression "(((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)) ||\n             (((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))" (parenthesized_expression "(((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0))" ( (binary_expression "((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))) ||\n              (lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)" (parenthesized_expression "((((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0))))" ( (binary_expression "(((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)) ||\n               ((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))" (parenthesized_expression "(((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0))" ( (binary_expression "((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)) ||\n                (lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)" (parenthesized_expression "((lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0))" ( (binary_expression "(lVar57 != 0) || (lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)" (parenthesized_expression "(lVar57 != 0)" ( (binary_expression "lVar57 != 0" identifier != number_literal) )) || (parenthesized_expression "(lVar57 = htab_elements(keep_specific_htab), lVar57 != 0)" ( (comma_expression "lVar57 = htab_elements(keep_specific_htab), lVar57 != 0" (assignment_expression "lVar57 = htab_elements(keep_specific_htab)" identifier = (call_expression "htab_elements(keep_specific_htab)" identifier (argument_list "(keep_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(lVar57 = htab_elements(localize_specific_htab), lVar57 != 0)" ( (comma_expression "lVar57 = htab_elements(localize_specific_htab), lVar57 != 0" (assignment_expression "lVar57 = htab_elements(localize_specific_htab)" identifier = (call_expression "htab_elements(localize_specific_htab)" identifier (argument_list "(localize_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)))" ( (parenthesized_expression "(lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0))" ( (comma_expression "lVar57 = htab_elements(globalize_specific_htab), lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)" (assignment_expression "lVar57 = htab_elements(globalize_specific_htab)" identifier = (call_expression "htab_elements(globalize_specific_htab)" identifier (argument_list "(globalize_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0 ||\n                (lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)" (binary_expression "lVar57 != 0" identifier != number_literal) || (parenthesized_expression "(lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0)" ( (comma_expression "lVar57 = htab_elements(keepglobal_specific_htab), lVar57 != 0" (assignment_expression "lVar57 = htab_elements(keepglobal_specific_htab)" identifier = (call_expression "htab_elements(keepglobal_specific_htab)" identifier (argument_list "(keepglobal_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0)" ( (comma_expression "lVar57 = htab_elements(weaken_specific_htab), lVar57 != 0" (assignment_expression "lVar57 = htab_elements(weaken_specific_htab)" identifier = (call_expression "htab_elements(weaken_specific_htab)" identifier (argument_list "(weaken_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))))" ( (parenthesized_expression "((lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0))))" ( (binary_expression "(lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)) ||\n              ((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))" (parenthesized_expression "(lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0))" ( (comma_expression "lVar57 = htab_elements(redefine_specific_htab), lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)" (assignment_expression "lVar57 = htab_elements(redefine_specific_htab)" identifier = (call_expression "htab_elements(redefine_specific_htab)" identifier (argument_list "(redefine_specific_htab)" ( identifier )))) , (binary_expression "lVar57 != 0 ||\n               (prefix_symbols_string != (char *)0x0)" (binary_expression "lVar57 != 0" identifier != number_literal) || (parenthesized_expression "(prefix_symbols_string != (char *)0x0)" ( (binary_expression "prefix_symbols_string != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) || (parenthesized_expression "((section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)))" ( (parenthesized_expression "(section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0))" ( (binary_expression "section_rename_list != (section_rename *)0x0 ||\n               ((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)" (binary_expression "section_rename_list != (section_rename *)0x0" identifier != (cast_expression "(section_rename *)0x0" ( (type_descriptor "section_rename *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0)" ( (binary_expression "(((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0) ||\n                add_symbols != 0" (parenthesized_expression "(((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0)" ( (binary_expression "((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0) || weaken != 0" (parenthesized_expression "((((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0)" ( (binary_expression "(((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0) || remove_leading_char != 0" (parenthesized_expression "(((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0)" ( (binary_expression "((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0) ||\n                  change_leading_char != 0" (parenthesized_expression "((sections_removed != 0 || sections_copied != 0) || convert_debugging != 0)" ( (binary_expression "(sections_removed != 0 || sections_copied != 0) || convert_debugging != 0" (parenthesized_expression "(sections_removed != 0 || sections_copied != 0)" ( (binary_expression "sections_removed != 0 || sections_copied != 0" (binary_expression "sections_removed != 0" identifier != number_literal) || (binary_expression "sections_copied != 0" identifier != number_literal)) )) || (binary_expression "convert_debugging != 0" identifier != number_literal)) )) || (binary_expression "change_leading_char != 0" identifier != number_literal)) )) || (binary_expression "remove_leading_char != 0" identifier != number_literal)) )) || (binary_expression "weaken != 0" identifier != number_literal)) )) || (binary_expression "add_symbols != 0" identifier != number_literal)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00109b5a;" goto statement_identifier ;)) }))) (expression_statement "bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff);" (call_expression "bfd_set_symtab(obfd,osympp,local_100 & 0xffffffff)" identifier (argument_list "(obfd,osympp,local_100 & 0xffffffff)" ( identifier , identifier , (binary_expression "local_100 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);" (call_expression "bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd)" identifier (argument_list "(ibfd,copy_relocations_in_section,obfd)" ( identifier , identifier , identifier ))) ;) (expression_statement "bfd_map_over_sections(ibfd,copy_section,obfd);" (call_expression "bfd_map_over_sections(ibfd,copy_section,obfd)" identifier (argument_list "(ibfd,copy_section,obfd)" ( identifier , identifier , identifier ))) ;) (for_statement "for (psVar52 = add_sections; psVar14 = update_sections, psVar52 != (section_add *)0x0;\n            psVar52 = psVar52->next) {\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }" for ( (assignment_expression "psVar52 = add_sections" identifier = identifier) ; (comma_expression "psVar14 = update_sections, psVar52 != (section_add *)0x0" (assignment_expression "psVar14 = update_sections" identifier = identifier) , (binary_expression "psVar52 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar52 = psVar52->next" identifier = (field_expression "psVar52->next" identifier -> field_identifier)) ) (compound_statement "{\n          bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;\n          if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }\n        }" { (expression_statement "bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)\n          ;" (assignment_expression "bVar19 = bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)" identifier = (call_expression "bfd_set_section_contents(obfd,psVar52->section,psVar52->contents,0,psVar52->size)" identifier (argument_list "(obfd,psVar52->section,psVar52->contents,0,psVar52->size)" ( identifier , (field_expression "psVar52->section" identifier -> field_identifier) , (field_expression "psVar52->contents" identifier -> field_identifier) , number_literal , (field_expression "psVar52->size" identifier -> field_identifier) )))) ;) (if_statement "if (bVar19 == 0) {\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);\n            return bVar19;\n          }" { (labeled_statement "LAB_00109aa8:\n            bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);" statement_identifier : (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,psVar52->section,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,psVar52->section,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (field_expression "psVar52->section" identifier -> field_identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return bVar19;" return identifier ;) })) })) (for_statement "for (; psVar14 != (section_add *)0x0; psVar14 = psVar14->next) {\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "psVar14 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "psVar14 = psVar14->next" identifier = (field_expression "psVar14->next" identifier -> field_identifier)) ) (compound_statement "{\n          paVar25 = psVar14->section->output_section;\n          iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);\n          if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }\n        }" { (expression_statement "paVar25 = psVar14->section->output_section;" (assignment_expression "paVar25 = psVar14->section->output_section" identifier = (field_expression "psVar14->section->output_section" (field_expression "psVar14->section" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size);" (assignment_expression "iVar17 = bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size)" identifier = (call_expression "bfd_set_section_contents(obfd,paVar25,psVar14->contents,0,psVar14->size)" identifier (argument_list "(obfd,paVar25,psVar14->contents,0,psVar14->size)" ( identifier , identifier , (field_expression "psVar14->contents" identifier -> field_identifier) , number_literal , (field_expression "psVar14->size" identifier -> field_identifier) )))) ;) (if_statement "if (iVar17 == 0) {\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);\n            return 0;\n          }" { (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar25,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,paVar25,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (merge_notes != 0) {\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }" if (parenthesized_expression "(merge_notes != 0)" ( (binary_expression "merge_notes != 0" identifier != number_literal) )) (compound_statement "{\n          paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n          if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }\n          free(merged_notes);\n          merged_notes = (bfd_byte *)0x0;\n          merge_notes = 0;\n        }" { (expression_statement "paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");" (assignment_expression "paVar25 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes")" identifier = (cast_expression "(asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes")" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(obfd,".gnu.build.attributes")" identifier (argument_list "(obfd,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") ))))) ;) (if_statement "if (((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))) {\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }\n          else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }" if (parenthesized_expression "(((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0))))" ( (binary_expression "((paVar25 == (asection *)0x0) || (merge_notes == 0)) ||\n             ((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))" (parenthesized_expression "((paVar25 == (asection *)0x0) || (merge_notes == 0))" ( (binary_expression "(paVar25 == (asection *)0x0) || (merge_notes == 0)" (parenthesized_expression "(paVar25 == (asection *)0x0)" ( (binary_expression "paVar25 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(merge_notes == 0)" ( (binary_expression "merge_notes == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)))" ( (parenthesized_expression "(obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0))" ( (binary_expression "obfd->xvec->flavour != bfd_target_elf_flavour ||\n              (bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)" (binary_expression "obfd->xvec->flavour != bfd_target_elf_flavour" (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier) != identifier) || (parenthesized_expression "(bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0)" ( (comma_expression "bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes), bVar19 == 0" (assignment_expression "bVar19 = is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes)" identifier = (call_expression "is_merged_note_section\n                                  ((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes)" identifier (argument_list "((bfd *)paVar25,(asection *)&paVar25->used_by_bfd,\n                                   (asection *)(ulong)(uint)merge_notes)" ( (cast_expression "(bfd *)paVar25" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(asection *)&paVar25->used_by_bfd" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar25->used_by_bfd" & (field_expression "paVar25->used_by_bfd" identifier -> field_identifier))) , (cast_expression "(asection *)(ulong)(uint)merge_notes" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(uint)merge_notes" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)merge_notes" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) , (binary_expression "bVar19 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }\n          }" { (if_statement "if (is_strip == 0) {\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }" if (parenthesized_expression "(is_strip == 0)" ( (binary_expression "is_strip == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n            }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"could not find any mergeable note sections",5)" identifier = (cast_expression "(char *)dcgettext(0,"could not find any mergeable note sections",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"could not find any mergeable note sections",5)" identifier (argument_list "(0,"could not find any mergeable note sections",5)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23)" identifier (argument_list "((char *)0x0,obfd,paVar25,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }" else (compound_statement "{\n            iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);\n            if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }\n          }" { (expression_statement "iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size);" (assignment_expression "iVar17 = bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size)" identifier = (call_expression "bfd_set_section_contents(obfd,paVar25,merged_notes,0,merged_size)" identifier (argument_list "(obfd,paVar25,merged_notes,0,merged_size)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);\n              bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);\n              return 0;\n            }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5)" identifier = (cast_expression "(char *)dcgettext(0,"error: failed to copy merged notes into output",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar25,pcVar23)" identifier (argument_list "((char *)0x0,obfd,paVar25,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "free(merged_notes);" (call_expression "free(merged_notes)" identifier (argument_list "(merged_notes)" ( identifier ))) ;) (expression_statement "merged_notes = (bfd_byte *)0x0;" (assignment_expression "merged_notes = (bfd_byte *)0x0" identifier = (cast_expression "(bfd_byte *)0x0" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "merge_notes = 0;" (assignment_expression "merge_notes = 0" identifier = number_literal) ;) })) (if_statement "if ((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)) {\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }" if (parenthesized_expression "((gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0))" ( (binary_expression "(gnu_debuglink_filename != (char *)0x0) &&\n           (iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)" (parenthesized_expression "(gnu_debuglink_filename != (char *)0x0)" ( (binary_expression "gnu_debuglink_filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0)" ( (comma_expression "iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8),\n           pcVar23 = gnu_debuglink_filename, iVar17 == 0" (assignment_expression "iVar17 = bfd_fill_in_gnu_debuglink_section(obfd,local_a8)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(obfd,local_a8)" identifier (argument_list "(obfd,local_a8)" ( identifier , identifier )))) , (comma_expression "pcVar23 = gnu_debuglink_filename, iVar17 == 0" (assignment_expression "pcVar23 = gnu_debuglink_filename" identifier = identifier) , (binary_expression "iVar17 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n          pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);\n          bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);\n          return 0;\n        }" { (expression_statement "pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"cannot fill debug link section `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar58,pcVar23)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (gap_fill_set != 0 || pad_to_set != 0) {\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }" if (parenthesized_expression "(gap_fill_set != 0 || pad_to_set != 0)" ( (binary_expression "gap_fill_set != 0 || pad_to_set != 0" (binary_expression "gap_fill_set != 0" identifier != number_literal) || (binary_expression "pad_to_set != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar35 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }\n          plVar36 = (long *)xmalloc(uVar35);\n          lVar57 = (ulong)gap_fill * 0x101010101010101;\n          uVar47 = (uint)uVar35;\n          if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }\n          if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }\n        }" { (expression_statement "uVar35 = 0x2000;" (assignment_expression "uVar35 = 0x2000" identifier = number_literal) ;) (if_statement "if (local_a0 < 0x2001) {\n            uVar35 = local_a0;\n          }" if (parenthesized_expression "(local_a0 < 0x2001)" ( (binary_expression "local_a0 < 0x2001" identifier < number_literal) )) (compound_statement "{\n            uVar35 = local_a0;\n          }" { (expression_statement "uVar35 = local_a0;" (assignment_expression "uVar35 = local_a0" identifier = identifier) ;) })) (expression_statement "plVar36 = (long *)xmalloc(uVar35);" (assignment_expression "plVar36 = (long *)xmalloc(uVar35)" identifier = (cast_expression "(long *)xmalloc(uVar35)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar35)" identifier (argument_list "(uVar35)" ( identifier ))))) ;) (expression_statement "lVar57 = (ulong)gap_fill * 0x101010101010101;" (assignment_expression "lVar57 = (ulong)gap_fill * 0x101010101010101" identifier = (binary_expression "(ulong)gap_fill * 0x101010101010101" (cast_expression "(ulong)gap_fill" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "uVar47 = (uint)uVar35;" (assignment_expression "uVar47 = (uint)uVar35" identifier = (cast_expression "(uint)uVar35" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar47 < 8) {\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }\n          else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }" if (parenthesized_expression "(uVar47 < 8)" ( (binary_expression "uVar47 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }\n          }" { (if_statement "if ((uVar35 & 4) == 0) {\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }\n            else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }" if (parenthesized_expression "((uVar35 & 4) == 0)" ( (binary_expression "(uVar35 & 4) == 0" (parenthesized_expression "(uVar35 & 4)" ( (binary_expression "uVar35 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }\n            }" { (if_statement "if ((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)) {\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }" if (parenthesized_expression "((uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0))" ( (binary_expression "(uVar47 != 0) && (*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)" (parenthesized_expression "(uVar47 != 0)" ( (binary_expression "uVar47 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0)" ( (comma_expression "*(char *)plVar36 = (char)lVar57, (uVar35 & 2) != 0" (assignment_expression "*(char *)plVar36 = (char)lVar57" (pointer_expression "*(char *)plVar36" * (cast_expression "(char *)plVar36" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)lVar57" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(uVar35 & 2) != 0" (parenthesized_expression "(uVar35 & 2)" ( (binary_expression "uVar35 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                *(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;\n              }" { (expression_statement "*(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57;" (assignment_expression "*(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2)) = (short)lVar57" (pointer_expression "*(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2))" * (cast_expression "(short *)((long)plVar36 + ((uVar35 & 0xffffffff) - 2))" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar36 + ((uVar35 & 0xffffffff) - 2))" ( (binary_expression "(long)plVar36 + ((uVar35 & 0xffffffff) - 2)" (cast_expression "(long)plVar36" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar35 & 0xffffffff) - 2)" ( (binary_expression "(uVar35 & 0xffffffff) - 2" (parenthesized_expression "(uVar35 & 0xffffffff)" ( (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(short)lVar57" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }" else (compound_statement "{\n              *(int *)plVar36 = (int)lVar57;\n              *(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;\n            }" { (expression_statement "*(int *)plVar36 = (int)lVar57;" (assignment_expression "*(int *)plVar36 = (int)lVar57" (pointer_expression "*(int *)plVar36" * (cast_expression "(int *)plVar36" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)lVar57" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57;" (assignment_expression "*(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4)) = (int)lVar57" (pointer_expression "*(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4))" * (cast_expression "(int *)((long)plVar36 + ((uVar35 & 0xffffffff) - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar36 + ((uVar35 & 0xffffffff) - 4))" ( (binary_expression "(long)plVar36 + ((uVar35 & 0xffffffff) - 4)" (cast_expression "(long)plVar36" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar35 & 0xffffffff) - 4)" ( (binary_expression "(uVar35 & 0xffffffff) - 4" (parenthesized_expression "(uVar35 & 0xffffffff)" ( (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(int)lVar57" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }" else (compound_statement "{\n            *plVar36 = lVar57;\n            *(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;\n            plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);\n            for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }\n          }" { (expression_statement "*plVar36 = lVar57;" (assignment_expression "*plVar36 = lVar57" (pointer_expression "*plVar36" * identifier) = identifier) ;) (expression_statement "*(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57;" (assignment_expression "*(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8)) = lVar57" (pointer_expression "*(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8))" * (cast_expression "(long *)((long)plVar36 + ((uVar35 & 0xffffffff) - 8))" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar36 + ((uVar35 & 0xffffffff) - 8))" ( (binary_expression "(long)plVar36 + ((uVar35 & 0xffffffff) - 8)" (cast_expression "(long)plVar36" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar35 & 0xffffffff) - 8)" ( (binary_expression "(uVar35 & 0xffffffff) - 8" (parenthesized_expression "(uVar35 & 0xffffffff)" ( (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = identifier) ;) (expression_statement "plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8);" (assignment_expression "plVar64 = (long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" identifier = (cast_expression "(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar36 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar36 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar36 + 1)" ( (binary_expression "plVar36 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3); uVar35 != 0; uVar35 = uVar35 - 1) {\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }" for ( (assignment_expression "uVar35 = (ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3)" identifier = (call_expression "(ulong)(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3)" ( (binary_expression "((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47\n                                 >> 3" (binary_expression "((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)) + uVar47" (parenthesized_expression "((int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8))" ( (binary_expression "(int)plVar36 -\n                                  (int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)plVar36" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(long *)((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar36 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar36 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar36 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar36 + 1)" ( (binary_expression "plVar36 + 1" identifier + number_literal) ))) & number_literal) ))))) )) + identifier) >> number_literal) )))) ; (binary_expression "uVar35 != 0" identifier != number_literal) ; (assignment_expression "uVar35 = uVar35 - 1" identifier = (binary_expression "uVar35 - 1" identifier - number_literal)) ) (compound_statement "{\n              *plVar64 = lVar57;\n              plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;\n            }" { (expression_statement "*plVar64 = lVar57;" (assignment_expression "*plVar64 = lVar57" (pointer_expression "*plVar64" * identifier) = identifier) ;) (expression_statement "plVar64 = plVar64 + (ulong)bVar71 * -2 + 1;" (assignment_expression "plVar64 = plVar64 + (ulong)bVar71 * -2 + 1" identifier = (binary_expression "plVar64 + (ulong)bVar71 * -2 + 1" (binary_expression "plVar64 + (ulong)bVar71 * -2" identifier + (binary_expression "(ulong)bVar71 * -2" (cast_expression "(ulong)bVar71" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) (if_statement "if (obfd->section_count != 0) {\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }" if (parenthesized_expression "(obfd->section_count != 0)" ( (binary_expression "obfd->section_count != 0" (field_expression "obfd->section_count" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n            puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;\n            do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);\n          }" { (expression_statement "puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1;" (assignment_expression "puVar51 = local_90 + (ulong)(obfd->section_count - 1) + 1" identifier = (binary_expression "local_90 + (ulong)(obfd->section_count - 1) + 1" (binary_expression "local_90 + (ulong)(obfd->section_count - 1)" identifier + (call_expression "(ulong)(obfd->section_count - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(obfd->section_count - 1)" ( (binary_expression "obfd->section_count - 1" (field_expression "obfd->section_count" identifier -> field_identifier) - number_literal) )))) + number_literal)) ;) (do_statement "do {\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar51 != local_90);" do (compound_statement "{\n              uVar35 = *local_90;\n              if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            }" { (expression_statement "uVar35 = *local_90;" (assignment_expression "uVar35 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (if_statement "if (uVar35 != 0) {\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }" if (parenthesized_expression "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )) (compound_statement "{\n                lVar57 = *local_98;\n                lVar30 = *(long *)(lVar57 + 0x38) - uVar35;\n                while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }\n              }" { (expression_statement "lVar57 = *local_98;" (assignment_expression "lVar57 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "lVar30 = *(long *)(lVar57 + 0x38) - uVar35;" (assignment_expression "lVar30 = *(long *)(lVar57 + 0x38) - uVar35" identifier = (binary_expression "*(long *)(lVar57 + 0x38) - uVar35" (pointer_expression "*(long *)(lVar57 + 0x38)" * (cast_expression "(long *)(lVar57 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar57 + 0x38)" ( (binary_expression "lVar57 + 0x38" identifier + number_literal) )))) - identifier)) ;) (while_statement "while( true ) {\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar45 = 0x2000;\n                  if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }\n                  iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);\n                  if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }\n                  lVar30 = lVar30 + uVar45;\n                  uVar35 = uVar35 - uVar45;\n                  if (uVar35 == 0) break;\n                  lVar57 = *local_98;\n                }" { (expression_statement "uVar45 = 0x2000;" (assignment_expression "uVar45 = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar35 < 0x2001) {\n                    uVar45 = uVar35;\n                  }" if (parenthesized_expression "(uVar35 < 0x2001)" ( (binary_expression "uVar35 < 0x2001" identifier < number_literal) )) (compound_statement "{\n                    uVar45 = uVar35;\n                  }" { (expression_statement "uVar45 = uVar35;" (assignment_expression "uVar45 = uVar35" identifier = identifier) ;) })) (expression_statement "iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45);" (assignment_expression "iVar17 = bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45)" identifier = (call_expression "bfd_set_section_contents(obfd,lVar57,plVar36,lVar30,uVar45)" identifier (argument_list "(obfd,lVar57,plVar36,lVar30,uVar45)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);\n                    return 0;\n                  }" { (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_98,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,(asection *)*local_98,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)*local_98" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_98" * identifier)) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar30 = lVar30 + uVar45;" (assignment_expression "lVar30 = lVar30 + uVar45" identifier = (binary_expression "lVar30 + uVar45" identifier + identifier)) ;) (expression_statement "uVar35 = uVar35 - uVar45;" (assignment_expression "uVar35 = uVar35 - uVar45" identifier = (binary_expression "uVar35 - uVar45" identifier - identifier)) ;) (if_statement "if (uVar35 == 0) break;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar57 = *local_98;" (assignment_expression "lVar57 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar51 != local_90)" ( (binary_expression "puVar51 != local_90" identifier != identifier) )) ;) })) })) (expression_statement "bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);" (assignment_expression "bVar19 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd)" identifier = (call_expression "(*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd)" (parenthesized_expression "(*obfd->xvec->_bfd_copy_private_bfd_data)" ( (pointer_expression "*obfd->xvec->_bfd_copy_private_bfd_data" * (field_expression "obfd->xvec->_bfd_copy_private_bfd_data" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(ibfd,obfd)" ( identifier , identifier )))) ;) (if_statement "if (bVar19 != 0) {\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }\n          return 1;\n        }" { (if_statement "if ((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)) {\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }" if (parenthesized_expression "((use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0))" ( (binary_expression "(use_alt_mach_code != 0) &&\n             (iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)" (parenthesized_expression "(use_alt_mach_code != 0)" ( (binary_expression "use_alt_mach_code != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0)" ( (comma_expression "iVar17 = bfd_alt_mach_code(obfd), uVar35 = use_alt_mach_code, iVar17 == 0" (assignment_expression "iVar17 = bfd_alt_mach_code(obfd)" identifier = (call_expression "bfd_alt_mach_code(obfd)" identifier (argument_list "(obfd)" ( identifier )))) , (comma_expression "uVar35 = use_alt_mach_code, iVar17 == 0" (assignment_expression "uVar35 = use_alt_mach_code" identifier = identifier) , (binary_expression "iVar17 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);\n            non_fatal(pcVar23,uVar35);\n            if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }\n            pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);\n            non_fatal(pcVar23);\n            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;\n          }" { (expression_statement "pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5)" identifier (argument_list "(0,\n                                        "this target does not support %lu alternative machine codes"\n                                        ,5)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23,uVar35);" (call_expression "non_fatal(pcVar23,uVar35)" identifier (argument_list "(pcVar23,uVar35)" ( identifier , identifier ))) ;) (if_statement "if (obfd->xvec->flavour != bfd_target_elf_flavour) {\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }" if (parenthesized_expression "(obfd->xvec->flavour != bfd_target_elf_flavour)" ( (binary_expression "obfd->xvec->flavour != bfd_target_elf_flavour" (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier) != identifier) )) (compound_statement "{\n              pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);\n              non_fatal(pcVar23);\n              return 1;\n            }" { (expression_statement "pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"ignoring the alternative value",5)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring the alternative value",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring the alternative value",5)" identifier (argument_list "(0,"ignoring the alternative value",5)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23);" (call_expression "non_fatal(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5)" identifier (argument_list "(0,\n                                        "treating that number as an absolute e_machine value instead"\n                                        ,5)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar23);" (call_expression "non_fatal(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "*(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code;" (assignment_expression "*(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =\n                 (short)use_alt_mach_code" (pointer_expression "*(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2)" * (cast_expression "(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2)" ( (binary_expression "(long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2" (cast_expression "(long)&((obfd->tdata).coff_obj_data)->local_n_btmask" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((obfd->tdata).coff_obj_data)->local_n_btmask" & (field_expression "((obfd->tdata).coff_obj_data)->local_n_btmask" (parenthesized_expression "((obfd->tdata).coff_obj_data)" ( (field_expression "(obfd->tdata).coff_obj_data" (parenthesized_expression "(obfd->tdata)" ( (field_expression "obfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) + number_literal) )))) = (cast_expression "(short)use_alt_mach_code" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5);" (assignment_expression "pcVar23 = (char *)dcgettext(0,"error copying private BFD data",5)" identifier = (cast_expression "(char *)dcgettext(0,"error copying private BFD data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error copying private BFD data",5)" identifier (argument_list "(0,"error copying private BFD data",5)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal ))))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00109580;" goto statement_identifier ;) })) (if_statement "if ((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)) {\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" if (parenthesized_expression "((do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing))" ( (binary_expression "(do_debug_sections == _sch_isblank) || ((do_debug_sections & _sch_isblank) == nothing)" (parenthesized_expression "(do_debug_sections == _sch_isblank)" ( (binary_expression "do_debug_sections == _sch_isblank" identifier == identifier) )) || (parenthesized_expression "((do_debug_sections & _sch_isblank) == nothing)" ( (binary_expression "(do_debug_sections & _sch_isblank) == nothing" (parenthesized_expression "(do_debug_sections & _sch_isblank)" ( (binary_expression "do_debug_sections & _sch_isblank" identifier & identifier) )) == identifier) ))) )) (compound_statement "{\n        if (do_elf_stt_common == unchanged) goto LAB_00109056;\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }" { (if_statement "if (do_elf_stt_common == unchanged) goto LAB_00109056;" if (parenthesized_expression "(do_elf_stt_common == unchanged)" ( (binary_expression "do_elf_stt_common == unchanged" identifier == identifier) )) (goto_statement "goto LAB_00109056;" goto statement_identifier ;)) (expression_statement "pcVar23 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar23 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar58 = "--elf-stt-common=[yes|no] is unsupported on `%s\'"" identifier = (string_literal ""--elf-stt-common=[yes|no] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" else (compound_statement "{\n        pcVar23 = bfd_get_archive_filename(ibfd);\n        pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" { (expression_statement "pcVar23 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar23 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar58 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" identifier = (string_literal ""--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }))) })) (labeled_statement "LAB_0010952f:\n    pcVar58 = (char *)dcgettext(0,pcVar58,5);" statement_identifier : (expression_statement "pcVar58 = (char *)dcgettext(0,pcVar58,5);" (assignment_expression "pcVar58 = (char *)dcgettext(0,pcVar58,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar58,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar58,5)" identifier (argument_list "(0,pcVar58,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "non_fatal(pcVar58,pcVar23);" (call_expression "non_fatal(pcVar58,pcVar23)" identifier (argument_list "(pcVar58,pcVar23)" ( identifier , identifier ))) ;) }))) (return_statement "return iVar17;" return identifier ;) (labeled_statement "LAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;" statement_identifier : (if_statement "if ((undefined1 *)((long)pvVar40 + bVar41) <= puVar46) goto LAB_0010b3c1;" if (parenthesized_expression "((undefined1 *)((long)pvVar40 + bVar41) <= puVar46)" ( (binary_expression "(undefined1 *)((long)pvVar40 + bVar41) <= puVar46" (cast_expression "(undefined1 *)((long)pvVar40 + bVar41)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar40 + bVar41)" ( (binary_expression "(long)pvVar40 + bVar41" (cast_expression "(long)pvVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;))) (expression_statement "*puVar46 = (char)uVar45;" (assignment_expression "*puVar46 = (char)uVar45" (pointer_expression "*puVar46" * identifier) = (cast_expression "(char)uVar45" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar45 == 0) goto LAB_0010b3c1;" if (parenthesized_expression "(uVar45 == 0)" ( (binary_expression "uVar45 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;)) (expression_statement "uVar45 = uVar45 >> 8;" (assignment_expression "uVar45 = uVar45 >> 8" identifier = (binary_expression "uVar45 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar46 = puVar46 + 1;" (assignment_expression "puVar46 = puVar46 + 1" identifier = (binary_expression "puVar46 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) (labeled_statement "LAB_0010b3c1:\n  pbVar13[0xb] = 0;" statement_identifier : (expression_statement "pbVar13[0xb] = 0;" (assignment_expression "pbVar13[0xb] = 0" (subscript_expression "pbVar13[0xb]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "bVar69 = true;" (assignment_expression "bVar69 = true" identifier = true) ;) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) }))) })))
(translation_unit "int FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)\n\n{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}\n\n" (function_definition "int FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)\n\n{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" primitive_type (function_declarator "FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)" identifier (parameter_list "(long param_1,undefined8 *param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" { (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "size_t *psVar6;" primitive_type (pointer_declarator "*psVar6" * identifier) ;) (declaration "void *__dest_00;" primitive_type (pointer_declarator "*__dest_00" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "void *pvVar23;" primitive_type (pointer_declarator "*pvVar23" * identifier) ;) (declaration "long lVar24;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "void *pvVar26;" primitive_type (pointer_declarator "*pvVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "size_t *psVar31;" primitive_type (pointer_declarator "*psVar31" * identifier) ;) (declaration "ulong *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined8 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "long *plVar34;" (sized_type_specifier "long" long) (pointer_declarator "*plVar34" * identifier) ;) (declaration "size_t *psVar35;" primitive_type (pointer_declarator "*psVar35" * identifier) ;) (declaration "size_t *psVar36;" primitive_type (pointer_declarator "*psVar36" * identifier) ;) (declaration "size_t *psVar37;" primitive_type (pointer_declarator "*psVar37" * identifier) ;) (declaration "long lVar38;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar39;" primitive_type (pointer_declarator "*pcVar39" * identifier) ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "ulong uVar41;" type_identifier identifier ;) (declaration "char cVar42;" primitive_type identifier ;) (declaration "byte *pbVar43;" type_identifier (pointer_declarator "*pbVar43" * identifier) ;) (declaration "undefined8 *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "ulong uVar45;" type_identifier identifier ;) (declaration "long *__src;" (sized_type_specifier "long" long) (pointer_declarator "*__src" * identifier) ;) (declaration "long *plVar46;" (sized_type_specifier "long" long) (pointer_declarator "*plVar46" * identifier) ;) (declaration "size_t *psVar47;" primitive_type (pointer_declarator "*psVar47" * identifier) ;) (declaration "void *pvVar48;" primitive_type (pointer_declarator "*pvVar48" * identifier) ;) (declaration "bool bVar49;" primitive_type identifier ;) (declaration "bool bVar50;" primitive_type identifier ;) (declaration "byte bVar51;" type_identifier identifier ;) (declaration "size_t *local_110;" primitive_type (pointer_declarator "*local_110" * identifier) ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "void *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "ulong local_e8;" type_identifier identifier ;) (declaration "size_t local_c8;" primitive_type identifier ;) (declaration "size_t local_c0;" primitive_type identifier ;) (declaration "size_t local_b8;" primitive_type identifier ;) (declaration "size_t local_b0;" primitive_type identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_a0;" type_identifier identifier ;) (declaration "long *local_98;" (sized_type_specifier "long" long) (pointer_declarator "*local_98" * identifier) ;) (declaration "ulong *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78 [4];" type_identifier (array_declarator "local_78 [4]" identifier [ number_literal ]) ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (expression_statement "bVar51 = 0;" (assignment_expression "bVar51 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 0xc)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0xc)" ( (binary_expression "*(long *)(param_1 + 8) + 0xc" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" if (parenthesized_expression "((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2))" ( (binary_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)" (parenthesized_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2)" ( (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2" (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc)" identifier != (pointer_expression "*(int *)(param_2[1] + 0xc)" * (cast_expression "(int *)(param_2[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0xc)" ( (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) && (binary_expression "iVar7 != 2" identifier != number_literal)) )) && (parenthesized_expression "(*(int *)(param_2[1] + 0xc) != 2)" ( (binary_expression "*(int *)(param_2[1] + 0xc) != 2" (pointer_expression "*(int *)(param_2[1] + 0xc)" * (cast_expression "(int *)(param_2[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0xc)" ( (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" { (expression_statement "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier = (call_expression "dcgettext(0,"Unable to change endianness of input file(s)",5)" identifier (argument_list "(0,"Unable to change endianness of input file(s)",5)" ( number_literal , (string_literal ""Unable to change endianness of input file(s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" ( identifier , (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" * (cast_expression "(byte *)(param_1 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }" { (labeled_statement "LAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" identifier (argument_list "(0,param_2,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;)) }) (else_clause "else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" else (compound_statement "{\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" { (if_statement "if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x90) == 0)" ( (binary_expression "*(long *)(param_1 + 0x90) == 0" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar39 = "error: the input file \'%s\' has no sections"" identifier = (string_literal ""error: the input file \'%s\' has no sections"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" else (compound_statement "{\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" { (if_statement "if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" if (parenthesized_expression "(*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5)" ( (binary_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5" (pointer_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1)" * (cast_expression "(int *)(*(undefined8 **)(param_1 + 8) + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" ( (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" { (labeled_statement "LAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" statement_identifier : (if_statement "if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" if (parenthesized_expression "(DAT_0012cb2c != 0)" ( (binary_expression "DAT_0012cb2c != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" { (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar13 = **(undefined8 **)(param_1 + 8);" (assignment_expression "uVar13 = **(undefined8 **)(param_1 + 8)" identifier = (pointer_expression "**(undefined8 **)(param_1 + 8)" * (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = *(undefined8 *)param_2[1];" (assignment_expression "uVar1 = *(undefined8 *)param_2[1]" identifier = (pointer_expression "*(undefined8 *)param_2[1]" * (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar14 = FUN_0011bfe0(param_1);" (assignment_expression "uVar14 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" identifier (argument_list "(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" ( number_literal , (string_literal ""copy from `%s\' [%s] to `%s\' [%s]\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar39,uVar14,uVar13,uVar12,uVar1);" (call_expression "printf(pcVar39,uVar14,uVar13,uVar12,uVar1)" identifier (argument_list "(pcVar39,uVar14,uVar13,uVar12,uVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" if (parenthesized_expression "(DAT_0012c9f4 == 0)" ( (binary_expression "DAT_0012c9f4 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" { (expression_statement "lVar38 = DAT_0012cae0;" (assignment_expression "lVar38 = DAT_0012cae0" identifier = identifier) ;) (if_statement "if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" if (parenthesized_expression "(DAT_0012cae8 == 0)" ( (binary_expression "DAT_0012cae8 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" { (expression_statement "lVar38 = *(long *)(param_1 + 0xa8);" (assignment_expression "lVar38 = *(long *)(param_1 + 0xa8)" identifier = (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) ))))) ;) })) (expression_statement "lVar38 = lVar38 + _DAT_0012caf0;" (assignment_expression "lVar38 = lVar38 + _DAT_0012caf0" identifier = (binary_expression "lVar38 + _DAT_0012caf0" identifier + identifier)) ;) })) (if_statement "if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" if (parenthesized_expression "((*(byte *)((long)param_2 + 0x44) & 7) != 3)" ( (binary_expression "(*(byte *)((long)param_2 + 0x44) & 7) != 3" (parenthesized_expression "(*(byte *)((long)param_2 + 0x44) & 7)" ( (binary_expression "*(byte *)((long)param_2 + 0x44) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x44)" * (cast_expression "(byte *)((long)param_2 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 0x44)" ( (binary_expression "(long)param_2 + 0x44" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" { (expression_statement "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);" (assignment_expression "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" identifier = (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14)" (unary_expression "~DAT_0012cab0" ~ identifier) & (pointer_expression "*(uint *)(param_2[1] + 0x14)" * (cast_expression "(uint *)(param_2[1] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x14)" ( (binary_expression "param_2[1] + 0x14" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) & (parenthesized_expression "(DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" ( (binary_expression "DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff" identifier | (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0xfffff" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) >> number_literal) & number_literal)) )))) ;) (if_statement "if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }" if (parenthesized_expression "(DAT_0012cb0c == 7)" ( (binary_expression "DAT_0012cb0c == 7" identifier == number_literal) )) (compound_statement "{\n            uVar28 = uVar28 & 0xfffffffe;\n          }" { (expression_statement "uVar28 = uVar28 & 0xfffffffe;" (assignment_expression "uVar28 = uVar28 & 0xfffffffe" identifier = (binary_expression "uVar28 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar7 = bfd_set_start_address(param_2,lVar38);" (assignment_expression "iVar7 = bfd_set_start_address(param_2,lVar38)" identifier = (call_expression "bfd_set_start_address(param_2,lVar38)" identifier (argument_list "(param_2,lVar38)" ( identifier , identifier )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_file_flags(param_2,uVar28)" identifier = (call_expression "bfd_set_file_flags(param_2,uVar28)" identifier (argument_list "(param_2,uVar28)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) })) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar9 = bfd_get_mach(param_1);" (assignment_expression "uVar9 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" { (expression_statement "lVar38 = bfd_get_arch_info(param_1);" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" if (parenthesized_expression "((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0))" ( (binary_expression "(lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" ( (comma_expression "lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "*(int *)(lVar38 + 0xc) == 0" (pointer_expression "*(int *)(lVar38 + 0xc)" * (cast_expression "(int *)(lVar38 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0xc)" ( (binary_expression "lVar38 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }" { (expression_statement "uVar8 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(param_3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_3 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" else (compound_statement "{\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" identifier = (call_expression "dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" identifier (argument_list "(0,"Input file `%s\' ignores binary architecture parameter.",5)" ( number_literal , (string_literal ""Input file `%s\' ignores binary architecture parameter."" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) }))) })) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" identifier = (call_expression "(**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" (parenthesized_expression "(**(code **)(param_2[1] + 0x290))" ( (pointer_expression "**(code **)(param_2[1] + 0x290)" * (pointer_expression "*(code **)(param_2[1] + 0x290)" * (cast_expression "(code **)(param_2[1] + 0x290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x290)" ( (binary_expression "param_2[1] + 0x290" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,uVar8,uVar9)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" { (if_statement "if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 0x47) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x47) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x47) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x47) & 4" (pointer_expression "*(byte *)(param_1 + 0x47)" * (cast_expression "(byte *)(param_1 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x47)" ( (binary_expression "param_1 + 0x47" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" { (labeled_statement "LAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);" statement_identifier : (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar39 = "Unable to recognise the format of the input file `%s\'"" identifier = (string_literal ""Unable to recognise the format of the input file `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" else (compound_statement "{\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" { (expression_statement "uVar12 = bfd_get_mach(param_1);" (assignment_expression "uVar12 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar12 = bfd_printable_arch_mach(uVar8,uVar12);" (assignment_expression "uVar12 = bfd_printable_arch_mach(uVar8,uVar12)" identifier = (call_expression "bfd_printable_arch_mach(uVar8,uVar12)" identifier (argument_list "(uVar8,uVar12)" ( identifier , identifier )))) ;) (expression_statement "pcVar39 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar39 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar10 = bfd_get_arch(param_2);" (assignment_expression "iVar10 = bfd_get_arch(param_2)" identifier = (call_expression "bfd_get_arch(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar7 != iVar10) goto LAB_0010916a;" if (parenthesized_expression "(iVar7 != iVar10)" ( (binary_expression "iVar7 != iVar10" identifier != identifier) )) (goto_statement "goto LAB_0010916a;" goto statement_identifier ;)) })) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" identifier (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" ( identifier , (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" * (cast_expression "(byte *)(param_1 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" { (labeled_statement "LAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_1,0,0);" (call_expression "FUN_0011c0d0(0,param_1,0,0)" identifier (argument_list "(0,param_1,0,0)" ( number_literal , identifier , number_literal , number_literal ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);" (assignment_expression "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1)" identifier = (pointer_expression "*(uint *)((undefined8 *)param_2[1] + 1)" * (cast_expression "(uint *)((undefined8 *)param_2[1] + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)param_2[1] + 1)" ( (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" identifier = (binary_expression "uVar28 < 2" identifier < number_literal)) ;) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" identifier = (binary_expression "uVar28 == 2" identifier == number_literal)) ;) (if_statement "if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" if (parenthesized_expression "(bVar50)" ( identifier )) (compound_statement "{\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" { (expression_statement "lVar38 = 4;" (assignment_expression "lVar38 = 4" identifier = number_literal) ;) (expression_statement "pbVar40 = *(byte **)param_2[1];" (assignment_expression "pbVar40 = *(byte **)param_2[1]" identifier = (pointer_expression "*(byte **)param_2[1]" * (cast_expression "(byte **)param_2[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);" do (compound_statement "{\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          }" { (if_statement "if (lVar38 == 0) break;" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar38 = lVar38 + -1;" (assignment_expression "lVar38 = lVar38 + -1" identifier = (binary_expression "lVar38 + -1" identifier + number_literal)) ;) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" identifier = (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" identifier = (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar50)" ( identifier )) ;) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" if (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" ( (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" ( (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" ! identifier) && (unary_expression "!bVar50" ! identifier)) )) == identifier) )) (compound_statement "{\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" { (expression_statement "lVar38 = param_2[0x1f];" (assignment_expression "lVar38 = param_2[0x1f]" identifier = (subscript_expression "param_2[0x1f]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);" (assignment_expression "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1)" identifier = (pointer_expression "*(uint *)(*(undefined8 **)(param_1 + 8) + 1)" * (cast_expression "(uint *)(*(undefined8 **)(param_1 + 8) + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" ( (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" identifier = (binary_expression "uVar28 < 2" identifier < number_literal)) ;) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" identifier = (binary_expression "uVar28 == 2" identifier == number_literal)) ;) (if_statement "if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" if (parenthesized_expression "(bVar50)" ( identifier )) (compound_statement "{\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" { (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" identifier = number_literal) ;) (expression_statement "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);" (assignment_expression "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8)" identifier = (cast_expression "(byte *)**(undefined8 **)(param_1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(param_1 + 8)" * (pointer_expression "*(undefined8 **)(param_1 + 8)" * (cast_expression "(undefined8 **)(param_1 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))))) ;) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" identifier = (pointer_expression "&DAT_0011e166" & identifier)) ;) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);" do (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" identifier = (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" identifier = (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar43" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar50)" ( identifier )) ;) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" if (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" ( (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" ( (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" ! identifier) && (unary_expression "!bVar50" ! identifier)) )) == identifier) )) (compound_statement "{\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" { (expression_statement "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);" (assignment_expression "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" identifier = (cast_expression "(undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 200)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 200" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar44 = (undefined8 *)(lVar38 + 200);" (assignment_expression "puVar44 = (undefined8 *)(lVar38 + 200)" identifier = (cast_expression "(undefined8 *)(lVar38 + 200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 200)" ( (binary_expression "lVar38 + 200" identifier + number_literal) )))) ;) (for_statement "for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" for ( (assignment_expression "lVar16 = 0x37" identifier = number_literal) ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" { (expression_statement "*puVar44 = *puVar33;" (assignment_expression "*puVar44 = *puVar33" (pointer_expression "*puVar44" * identifier) = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "puVar33 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar33 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "puVar44 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar44 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) })) (expression_statement "uVar21 = DAT_0012b4f8;" (assignment_expression "uVar21 = DAT_0012b4f8" identifier = identifier) ;) (if_statement "if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" if (parenthesized_expression "(DAT_0012b4f8 == 0xffffffffffffffff)" ( (binary_expression "DAT_0012b4f8 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }" { (expression_statement "DAT_0012b4f8 = 0x200;" (assignment_expression "DAT_0012b4f8 = 0x200" identifier = number_literal) ;) (expression_statement "uVar21 = 0x200;" (assignment_expression "uVar21 = 0x200" identifier = number_literal) ;) }) (else_clause "else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" else (compound_statement "{\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" { (expression_statement "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;" (assignment_expression "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8" (pointer_expression "*(ulong *)(lVar38 + 0x110)" * (cast_expression "(ulong *)(lVar38 + 0x110)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x110)" ( (binary_expression "lVar38 + 0x110" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" if (parenthesized_expression "(DAT_0012b4f0 != -1)" ( (binary_expression "DAT_0012b4f0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4f0;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4f0" (pointer_expression "*(long *)(lVar38 + 0x168)" * (cast_expression "(long *)(lVar38 + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x168)" ( (binary_expression "lVar38 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" if (parenthesized_expression "(DAT_0012b4e8 != -1)" ( (binary_expression "DAT_0012b4e8 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" { (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4e8;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4e8" (pointer_expression "*(long *)(lVar38 + 0x168)" * (cast_expression "(long *)(lVar38 + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x168)" ( (binary_expression "lVar38 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" if (parenthesized_expression "(DAT_0012b4e0 != -1)" ( (binary_expression "DAT_0012b4e0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x100) = DAT_0012b4e0;" (assignment_expression "*(long *)(lVar38 + 0x100) = DAT_0012b4e0" (pointer_expression "*(long *)(lVar38 + 0x100)" * (cast_expression "(long *)(lVar38 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x100)" ( (binary_expression "lVar38 + 0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar29 = DAT_0012b4d8;" (assignment_expression "uVar29 = DAT_0012b4d8" identifier = identifier) ;) (if_statement "if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" if (parenthesized_expression "(DAT_0012b4d8 == 0xffffffffffffffff)" ( (binary_expression "DAT_0012b4d8 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }" { (expression_statement "DAT_0012b4d8 = 0x1000;" (assignment_expression "DAT_0012b4d8 = 0x1000" identifier = number_literal) ;) (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" identifier = number_literal) ;) }) (else_clause "else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" else (compound_statement "{\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" { (expression_statement "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;" (assignment_expression "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8" (pointer_expression "*(ulong *)(lVar38 + 0x108)" * (cast_expression "(ulong *)(lVar38 + 0x108)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x108)" ( (binary_expression "lVar38 + 0x108" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" if (parenthesized_expression "(DAT_0012b4d0 != -1)" ( (binary_expression "DAT_0012b4d0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" { (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4d0;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4d0" (pointer_expression "*(long *)(lVar38 + 0x158)" * (cast_expression "(long *)(lVar38 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x158)" ( (binary_expression "lVar38 + 0x158" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" if (parenthesized_expression "(DAT_0012b4c8 != -1)" ( (binary_expression "DAT_0012b4c8 != -1" identifier != number_literal) )) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" { (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4c8;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4c8" (pointer_expression "*(long *)(lVar38 + 0x158)" * (cast_expression "(long *)(lVar38 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x158)" ( (binary_expression "lVar38 + 0x158" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" if (parenthesized_expression "(DAT_0012b4c4 != -1)" ( (binary_expression "DAT_0012b4c4 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" { (expression_statement "*(short *)(lVar38 + 0x148) = DAT_0012b4c4;" (assignment_expression "*(short *)(lVar38 + 0x148) = DAT_0012b4c4" (pointer_expression "*(short *)(lVar38 + 0x148)" * (cast_expression "(short *)(lVar38 + 0x148)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x148)" ( (binary_expression "lVar38 + 0x148" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" if (parenthesized_expression "(DAT_0012b4c2 != -1)" ( (binary_expression "DAT_0012b4c2 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" { (expression_statement "*(short *)(lVar38 + 0x120) = DAT_0012b4c2;" (assignment_expression "*(short *)(lVar38 + 0x120) = DAT_0012b4c2" (pointer_expression "*(short *)(lVar38 + 0x120)" * (cast_expression "(short *)(lVar38 + 0x120)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x120)" ( (binary_expression "lVar38 + 0x120" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" if (parenthesized_expression "(DAT_0012b4c0 != -1)" ( (binary_expression "DAT_0012b4c0 != -1" identifier != number_literal) )) (compound_statement "{\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" { (expression_statement "*(short *)(lVar38 + 0x122) = DAT_0012b4c0;" (assignment_expression "*(short *)(lVar38 + 0x122) = DAT_0012b4c0" (pointer_expression "*(short *)(lVar38 + 0x122)" * (cast_expression "(short *)(lVar38 + 0x122)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x122)" ( (binary_expression "lVar38 + 0x122" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" if (parenthesized_expression "(uVar29 < uVar21)" ( (binary_expression "uVar29 < uVar21" identifier < identifier) )) (compound_statement "{\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" { (expression_statement "sprintf((char *)local_78,"%016lx");" (call_expression "sprintf((char *)local_78,"%016lx")" identifier (argument_list "((char *)local_78,"%016lx")" ( (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%016lx"" " string_content ") ))) ;) (expression_statement "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);" (call_expression "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8)" identifier (argument_list "((char *)&local_58,"%016lx",DAT_0012b4d8)" ( (cast_expression "(char *)&local_58" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_58" & identifier)) , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" identifier = (call_expression "dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" identifier (argument_list "(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" ( number_literal , (string_literal ""warning: file alignment (0x%s) > section alignment (0x%s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,local_78,&local_58);" (call_expression "FUN_0011b660(uVar12,local_78,&local_58)" identifier (argument_list "(uVar12,local_78,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) })) })) })) (expression_statement "plVar15 = DAT_0012cb40;" (assignment_expression "plVar15 = DAT_0012cb40" identifier = identifier) ;) (if_statement "if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }" if (parenthesized_expression "(DAT_0012cb40 != (long *)0x0)" ( (binary_expression "DAT_0012cb40 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(DAT_0012cb40);\n        }" { (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" identifier (argument_list "(DAT_0012cb40)" ( identifier ))) ;) })) (if_statement "if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }" if (parenthesized_expression "(plVar15 != DAT_0012cb38)" ( (binary_expression "plVar15 != DAT_0012cb38" identifier != identifier) )) (compound_statement "{\n          free(DAT_0012cb38);\n        }" { (expression_statement "free(DAT_0012cb38);" (call_expression "free(DAT_0012cb38)" identifier (argument_list "(DAT_0012cb38)" ( identifier ))) ;) })) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);" (assignment_expression "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f0)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f0)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f0)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1f0" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar38 < 0) goto LAB_001091b0;" if (parenthesized_expression "(lVar38 < 0)" ( (binary_expression "lVar38 < 0" identifier < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (expression_statement "DAT_0012cb38 = (long *)xmalloc(lVar38);" (assignment_expression "DAT_0012cb38 = (long *)xmalloc(lVar38)" identifier = (cast_expression "(long *)xmalloc(lVar38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar38)" identifier (argument_list "(lVar38)" ( identifier ))))) ;) (expression_statement "DAT_0012cb40 = DAT_0012cb38;" (assignment_expression "DAT_0012cb40 = DAT_0012cb38" identifier = identifier) ;) (expression_statement "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);" (assignment_expression "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f8)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f8)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f8)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1f8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,DAT_0012cb38)" ( identifier , identifier )))) ;) (if_statement "if ((long)local_100 < 0) goto LAB_001091b0;" if (parenthesized_expression "((long)local_100 < 0)" ( (binary_expression "(long)local_100 < 0" (cast_expression "(long)local_100" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_001091b0;" goto statement_identifier ;)) (if_statement "if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" { (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" identifier (argument_list "(DAT_0012cb40)" ( identifier ))) ;) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bfd_map_over_sections(param_1,FUN_001083b0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_001083b0,param_2)" identifier (argument_list "(param_1,FUN_001083b0,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ;) (if_statement "if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" if (parenthesized_expression "((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0))" ( (binary_expression "(DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012c9f4 == 0)" ( (binary_expression "DAT_0012c9f4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0x160))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x160))" ( (pointer_expression "**(code **)(param_2[1] + 0x160)" * (pointer_expression "*(code **)(param_2[1] + 0x160)" * (cast_expression "(code **)(param_2[1] + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x160)" ( (binary_expression "param_2[1] + 0x160" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (comma_expression "puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar12 = dcgettext(0,"error in private header data",5)" identifier = (call_expression "dcgettext(0,"error in private header data",5)" identifier (argument_list "(0,"error in private header data",5)" ( number_literal , (string_literal ""error in private header data"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar12)" identifier (argument_list "(0,param_1,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ;) })) (for_statement "for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" for ( ; (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" { (expression_statement "uVar28 = 0x128;" (assignment_expression "uVar28 = 0x128" identifier = number_literal) ;) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x40);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x40)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0x40)" identifier (argument_list "(puVar33[1],0,0x40)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" { (expression_statement "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;" (assignment_expression "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100" identifier = (binary_expression "*(uint *)(lVar38 + 0x28) | 0x100" (pointer_expression "*(uint *)(lVar38 + 0x28)" * (cast_expression "(uint *)(lVar38 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,puVar33[1])" identifier = (call_expression "bfd_get_section_by_name(param_2,puVar33[1])" identifier (argument_list "(param_2,puVar33[1])" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "can\'t add section \'%s\'";" (assignment_expression "pcVar39 = "can\'t add section \'%s\'"" identifier = (string_literal ""can\'t add section \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" identifier = (call_expression "bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" identifier (argument_list "(param_2,puVar33[1],uVar28 | 0x100000)" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) , (binary_expression "uVar28 | 0x100000" identifier | number_literal) )))) ;) (expression_statement "puVar33[5] = lVar38;" (assignment_expression "puVar33[5] = lVar38" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" { (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "can\'t create section `%s\'";" (assignment_expression "pcVar39 = "can\'t create section `%s\'"" identifier = (string_literal ""can\'t create section `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109ad0;" goto statement_identifier ;) })) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3])" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,puVar33[3])" identifier (argument_list "(param_2,lVar38,puVar33[3])" ( identifier , identifier , (subscript_expression "puVar33[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_00109aa8;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109aa8;" goto statement_identifier ;)) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0xc);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0xc)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0xc)" identifier (argument_list "(puVar33[1],0,0xc)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" { (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x18);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x18)" identifier = (pointer_expression "*(undefined8 *)(lVar38 + 0x18)" * (cast_expression "(undefined8 *)(lVar38 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x18)" ( (binary_expression "lVar38 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar38 = puVar33[5];" (assignment_expression "lVar38 = puVar33[5]" identifier = (subscript_expression "puVar33[5]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;" (assignment_expression "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" * (cast_expression "(byte *)(lVar38 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x24)" ( (binary_expression "lVar38 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" * (cast_expression "(byte *)(lVar38 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x24)" ( (binary_expression "lVar38 + 0x24" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined8 *)(lVar38 + 0x30) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x30) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x30)" * (cast_expression "(undefined8 *)(lVar38 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar38 + 0x28) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x28) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x28)" * (cast_expression "(undefined8 *)(lVar38 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x30);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x30)" identifier = (call_expression "FUN_00107360(puVar33[1],0,0x30)" identifier (argument_list "(puVar33[1],0,0x30)" ( (subscript_expression "puVar33[1]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" if (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" { (expression_statement "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);" (assignment_expression "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20)" (pointer_expression "*(undefined8 *)(puVar33[5] + 0x30)" * (cast_expression "(undefined8 *)(puVar33[5] + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33[5] + 0x30)" ( (binary_expression "puVar33[5] + 0x30" (subscript_expression "puVar33[5]" identifier [ number_literal ]) + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar38 + 0x20)" * (cast_expression "(undefined8 *)(lVar38 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x20)" ( (binary_expression "lVar38 + 0x20" identifier + number_literal) ))))) ;) })) })) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "puVar44 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar44 = (undefined8 *)*puVar44" identifier = (cast_expression "(undefined8 *)*puVar44" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar44" * identifier))) ) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar44[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar44[1])" identifier (argument_list "(param_1,puVar44[1])" ( identifier , (subscript_expression "puVar44[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar44[5] = lVar38;" (assignment_expression "puVar44[5] = lVar38" (subscript_expression "puVar44[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" { (expression_statement "uVar12 = puVar44[1];" (assignment_expression "uVar12 = puVar44[1]" identifier = (subscript_expression "puVar44[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar39 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar39 = "error: %s not found, can\'t be updated"" identifier = (string_literal ""error: %s not found, can\'t be updated"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010952f;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(lVar38 + 0x68)" * (cast_expression "(undefined8 *)(lVar38 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3])" identifier = (call_expression "bfd_set_section_size(param_2,uVar12,puVar44[3])" identifier (argument_list "(param_2,uVar12,puVar44[3])" ( identifier , identifier , (subscript_expression "puVar44[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" { (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" identifier (argument_list "(0,param_2,uVar12,0)" ( number_literal , identifier , identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" if (parenthesized_expression "((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))))" ( (binary_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" (parenthesized_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0))" ( (binary_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)" (parenthesized_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0))" ( (binary_expression "(DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" ( (comma_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes")" identifier = (call_expression "bfd_get_section_by_name(param_1,".gnu.build.attributes")" identifier (argument_list "(param_1,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" ( (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier = (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier (argument_list "(lVar38,lVar38 + 0xe0)" ( identifier , (binary_expression "lVar38 + 0xe0" identifier + number_literal) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" { (expression_statement "uVar21 = *(ulong *)(lVar38 + 0x38);" (assignment_expression "uVar21 = *(ulong *)(lVar38 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar38 + 0x38)" * (cast_expression "(ulong *)(lVar38 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }" { (expression_statement "uVar12 = dcgettext(0,"warning: note section is empty",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: note section is empty",5)" identifier = (call_expression "dcgettext(0,"warning: note section is empty",5)" identifier (argument_list "(0,"warning: note section is empty",5)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" else (compound_statement "{\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" { (expression_statement "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);" (assignment_expression "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" identifier = (call_expression "bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" identifier (argument_list "(param_1,lVar38,&DAT_0012cb18)" ( identifier , identifier , (pointer_expression "&DAT_0012cb18" & identifier) )))) ;) (expression_statement "__dest_00 = DAT_0012cb18;" (assignment_expression "__dest_00 = DAT_0012cb18" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }" { (expression_statement "uVar12 = dcgettext(0,"warning: could not load note section",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: could not load note section",5)" identifier = (call_expression "dcgettext(0,"warning: could not load note section",5)" identifier (argument_list "(0,"warning: could not load note section",5)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" else (compound_statement "{\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" { (expression_statement "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);" (assignment_expression "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38)" identifier = (call_expression "bfd_get_reloc_upper_bound(param_1,lVar38)" identifier (argument_list "(param_1,lVar38)" ( identifier , identifier )))) ;) (if_statement "if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" if (parenthesized_expression "(0 < lVar16)" ( (binary_expression "0 < lVar16" number_literal < identifier) )) (compound_statement "{\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" { (expression_statement "pvVar23 = (void *)xmalloc(lVar16);" (assignment_expression "pvVar23 = (void *)xmalloc(lVar16)" identifier = (cast_expression "(void *)xmalloc(lVar16)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (expression_statement "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);" (assignment_expression "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" identifier = (call_expression "bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" identifier (argument_list "(param_1,lVar38,pvVar23,DAT_0012cb40)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "free(pvVar23);" (call_expression "free(pvVar23)" identifier (argument_list "(pvVar23)" ( identifier ))) ;) (if_statement "if (lVar16 == 0) goto LAB_0010ae6f;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010ae6f;" goto statement_identifier ;)) (expression_statement "local_110 = (size_t *)0x0;" (assignment_expression "local_110 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;) })) (labeled_statement "LAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" statement_identifier : (expression_statement "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" (assignment_expression "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" identifier = (cast_expression "(size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" identifier (argument_list "(uVar21 / 0xc,0x48,uVar21 % 0xc)" ( (binary_expression "uVar21 / 0xc" identifier / number_literal) , number_literal , (binary_expression "uVar21 % 0xc" identifier % number_literal) ))))) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "psVar35 = local_110;" (assignment_expression "psVar35 = local_110" identifier = identifier) ;) (expression_statement "pvVar23 = __dest_00;" (assignment_expression "pvVar23 = __dest_00" identifier = identifier) ;) (expression_statement "local_e8 = uVar21;" (assignment_expression "local_e8 = uVar21" identifier = identifier) ;) (while_statement "while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" while (parenthesized_expression "(0xb < local_e8)" ( (binary_expression "0xb < local_e8" number_literal < identifier) )) (compound_statement "{\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" { (expression_statement "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);" (assignment_expression "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pvVar23)" ( identifier )))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar41 = lVar24 + 3U & 0xfffffffffffffffc" identifier = (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "*psVar35 = uVar41;" (assignment_expression "*psVar35 = uVar41" (pointer_expression "*psVar35" * identifier) = identifier) ;) (expression_statement "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);" (assignment_expression "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" identifier = (call_expression "(**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "((long)pvVar23 + 4)" ( (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar29 = lVar24 + 3U & 0xfffffffffffffffc" identifier = (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "psVar35[1] = uVar29;" (assignment_expression "psVar35[1] = uVar29" (subscript_expression "psVar35[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar17 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar17 = (**(code **)(lVar16 + 0x38))()" identifier = (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "psVar35[2] = sVar17;" (assignment_expression "psVar35[2] = sVar17" (subscript_expression "psVar35[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(1 < sVar17 - 0x100)" ( (binary_expression "1 < sVar17 - 0x100" number_literal < (binary_expression "sVar17 - 0x100" identifier - number_literal)) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "uVar45 = uVar41 + uVar29 + 0xc;" (assignment_expression "uVar45 = uVar41 + uVar29 + 0xc" identifier = (binary_expression "uVar41 + uVar29 + 0xc" (binary_expression "uVar41 + uVar29" identifier + identifier) + number_literal)) ;) (if_statement "if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(local_e8 < uVar45)" ( (binary_expression "local_e8 < uVar45" identifier < identifier) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(uVar41 < 2)" ( (binary_expression "uVar41 < 2" identifier < number_literal) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: name too small",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "sVar18 = (long)pvVar23 + uVar41 + 0xc;" (assignment_expression "sVar18 = (long)pvVar23 + uVar41 + 0xc" identifier = (binary_expression "(long)pvVar23 + uVar41 + 0xc" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal)) ;) (expression_statement "psVar35[3] = (long)pvVar23 + 0xc;" (assignment_expression "psVar35[3] = (long)pvVar23 + 0xc" (subscript_expression "psVar35[3]" identifier [ number_literal ]) = (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal)) ;) (expression_statement "psVar35[4] = sVar18;" (assignment_expression "psVar35[4] = sVar18" (subscript_expression "psVar35[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));" (assignment_expression "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29))" identifier = (binary_expression "local_e8 + (-0xc - (uVar41 + uVar29))" identifier + (parenthesized_expression "(-0xc - (uVar41 + uVar29))" ( (binary_expression "-0xc - (uVar41 + uVar29)" number_literal - (parenthesized_expression "(uVar41 + uVar29)" ( (binary_expression "uVar41 + uVar29" identifier + identifier) ))) )))) ;) (if_statement "if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == '$')" ( (binary_expression "*(char *)((long)pvVar23 + 0xc) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" * (cast_expression "(char *)((long)pvVar23 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) )) (compound_statement "{\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }" { (if_statement "if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }" if (parenthesized_expression "((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1'))" ( (binary_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')" (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01')" ( (binary_expression "*(char *)((long)pvVar23 + 0xd) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" * (cast_expression "(char *)((long)pvVar23 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xd)" ( (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '1')" ( (binary_expression "*(char *)((long)pvVar23 + 0xe) == '1'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" * (cast_expression "(char *)((long)pvVar23 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xe)" ( (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n                    iVar7 = iVar7 + 1;\n                  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" else (if_statement "if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" if (parenthesized_expression "((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))))" ( (binary_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A'))" ( (binary_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G'))" ( (binary_expression "(4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')" (parenthesized_expression "(4 < uVar41)" ( (binary_expression "4 < uVar41" number_literal < identifier) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == 'G')" ( (binary_expression "*(char *)((long)pvVar23 + 0xc) == 'G'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" * (cast_expression "(char *)((long)pvVar23 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'G'" ' character ')) ))) )) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == 'A')" ( (binary_expression "*(char *)((long)pvVar23 + 0xd) == 'A'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" * (cast_expression "(char *)((long)pvVar23 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xd)" ( (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'A'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" ( (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))" ( (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')" (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" * (cast_expression "(char *)((long)pvVar23 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xe)" ( (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(*(char *)((long)pvVar23 + 0xf) == '\x01')" ( (binary_expression "*(char *)((long)pvVar23 + 0xf) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xf)" * (cast_expression "(char *)((long)pvVar23 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xf)" ( (binary_expression "(long)pvVar23 + 0xf" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" { (if_statement "if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) == '2')" ( (binary_expression "*(char *)((long)pvVar23 + 0x10) == '2'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" * (cast_expression "(char *)((long)pvVar23 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0x10)" ( (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n                    iVar11 = iVar11 + 1;\n                  }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" else (compound_statement "{\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" { (if_statement "if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" if (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) != '3')" ( (binary_expression "*(char *)((long)pvVar23 + 0x10) != '3'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" * (cast_expression "(char *)((long)pvVar23 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0x10)" ( (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (char_literal "'3'" ' character ')) )) (compound_statement "{\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" identifier (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }))) })))) (if_statement "if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 == 4)" ( (binary_expression "uVar29 == 4" identifier == number_literal) )) (compound_statement "{\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }" { (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (if_statement "if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 < 5)" ( (binary_expression "uVar29 < 5" identifier < number_literal) )) (compound_statement "{\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }" { (if_statement "if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" { (labeled_statement "LAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" statement_identifier : (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" identifier (argument_list "(0,"corrupt GNU build attribute note: bad description size",5)" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal )))) ;)) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "sVar25 = 0;" (assignment_expression "sVar25 = 0" identifier = number_literal) ;) (expression_statement "sVar18 = 0;" (assignment_expression "sVar18 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (if_statement "if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }" { (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" if (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" ( (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" ( (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" * (cast_expression "(int *)(lVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }" { (expression_statement "sVar18 = (**(code **)(lVar16 + 0x20))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x20))()" identifier = (call_expression "(**(code **)(lVar16 + 0x20))()" (parenthesized_expression "(**(code **)(lVar16 + 0x20))" ( (pointer_expression "**(code **)(lVar16 + 0x20)" * (pointer_expression "*(code **)(lVar16 + 0x20)" * (cast_expression "(code **)(lVar16 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" identifier = number_literal) ;) }) (else_clause "else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" else (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" { (expression_statement "sVar18 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x38))()" identifier = (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" ( (pointer_expression "**(code **)(lVar16 + 0x38)" * (pointer_expression "*(code **)(lVar16 + 0x38)" * (cast_expression "(code **)(lVar16 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" ( (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" else (compound_statement "{\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" { (if_statement "if (uVar29 != 0x10) goto LAB_0010b046;" if (parenthesized_expression "(uVar29 != 0x10)" ( (binary_expression "uVar29 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0010b046;" goto statement_identifier ;)) (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" ( (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar18)" ( identifier )))) ;) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))()" identifier = (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" ( (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))))))) (if_statement "if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" if (parenthesized_expression "(sVar17 == 0x100)" ( (binary_expression "sVar17 == 0x100" identifier == number_literal) )) (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }" { (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }" if (parenthesized_expression "(sVar18 == 0)" ( (binary_expression "sVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar18 = local_c8;\n                  }" { (expression_statement "sVar18 = local_c8;" (assignment_expression "sVar18 = local_c8" identifier = identifier) ;) })) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }" if (parenthesized_expression "(sVar25 == 0)" ( (binary_expression "sVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar25 = local_c0;\n                  }" { (expression_statement "sVar25 = local_c0;" (assignment_expression "sVar25 = local_c0" identifier = identifier) ;) })) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c8 = sVar18;" (assignment_expression "local_c8 = sVar18" identifier = identifier) ;) (expression_statement "local_c0 = sVar25;" (assignment_expression "local_c0 = sVar25" identifier = identifier) ;) }) (else_clause "else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" else (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" { (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }" if (parenthesized_expression "(sVar18 == 0)" ( (binary_expression "sVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar18 = local_b8;\n                  }" { (expression_statement "sVar18 = local_b8;" (assignment_expression "sVar18 = local_b8" identifier = identifier) ;) })) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }" if (parenthesized_expression "(sVar25 == 0)" ( (binary_expression "sVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                    sVar25 = local_b0;\n                  }" { (expression_statement "sVar25 = local_b0;" (assignment_expression "sVar25 = local_b0" identifier = identifier) ;) })) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b8 = sVar18;" (assignment_expression "local_b8 = sVar18" identifier = identifier) ;) (expression_statement "local_b0 = sVar25;" (assignment_expression "local_b0 = sVar25" identifier = identifier) ;) }))) (if_statement "if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(*(char *)((psVar35[3] - 1) + *psVar35) != '\0')" ( (binary_expression "*(char *)((psVar35[3] - 1) + *psVar35) != '\0'" (pointer_expression "*(char *)((psVar35[3] - 1) + *psVar35)" * (cast_expression "(char *)((psVar35[3] - 1) + *psVar35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((psVar35[3] - 1) + *psVar35)" ( (binary_expression "(psVar35[3] - 1) + *psVar35" (parenthesized_expression "(psVar35[3] - 1)" ( (binary_expression "psVar35[3] - 1" (subscript_expression "psVar35[3]" identifier [ number_literal ]) - number_literal) )) + (pointer_expression "*psVar35" * identifier)) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" identifier (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "psVar35 = psVar35 + 9;" (assignment_expression "psVar35 = psVar35 + 9" identifier = (binary_expression "psVar35 + 9" identifier + number_literal)) ;) (expression_statement "pvVar23 = (void *)(uVar45 + (long)pvVar23);" (assignment_expression "pvVar23 = (void *)(uVar45 + (long)pvVar23)" identifier = (cast_expression "(void *)(uVar45 + (long)pvVar23)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar45 + (long)pvVar23)" ( (binary_expression "uVar45 + (long)pvVar23" identifier + (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) })) (if_statement "if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" if (parenthesized_expression "(local_e8 == 0)" ( (binary_expression "local_e8 == 0" identifier == number_literal) )) (compound_statement "{\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }" { (if_statement "if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(iVar7 == 0 && (iVar11 == 0 && iVar10 == 0))" ( (binary_expression "iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)" (binary_expression "iVar7 == 0" identifier == number_literal) && (parenthesized_expression "(iVar11 == 0 && iVar10 == 0)" ( (binary_expression "iVar11 == 0 && iVar10 == 0" (binary_expression "iVar11 == 0" identifier == number_literal) && (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" identifier (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0))))" ( (binary_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))" (parenthesized_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0))" ( (binary_expression "(iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 != 0 || iVar10 != 0)" ( (binary_expression "iVar11 != 0 || iVar10 != 0" (binary_expression "iVar11 != 0" identifier != number_literal) || (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar11 != 0 && (iVar10 != 0)))" ( (parenthesized_expression "(iVar11 != 0 && (iVar10 != 0))" ( (binary_expression "iVar11 != 0 && (iVar10 != 0)" (binary_expression "iVar11 != 0" identifier != number_literal) && (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" identifier (argument_list "(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (if_statement "if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;" if (parenthesized_expression "((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1))" ( (binary_expression "(iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)" (parenthesized_expression "(iVar7 == 1 || iVar11 == 1)" ( (binary_expression "iVar7 == 1 || iVar11 == 1" (binary_expression "iVar7 == 1" identifier == number_literal) || (binary_expression "iVar11 == 1" identifier == number_literal)) )) || (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "uVar28 = -(uint)(iVar7 == 0) & 2;" (assignment_expression "uVar28 = -(uint)(iVar7 == 0) & 2" identifier = (binary_expression "-(uint)(iVar7 == 0) & 2" (unary_expression "-(uint)(iVar7 == 0)" - (call_expression "(uint)(iVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "lVar16 = (long)(int)(uVar28 + 1);" (assignment_expression "lVar16 = (long)(int)(uVar28 + 1)" identifier = (cast_expression "(long)(int)(uVar28 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar28 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 + 1)" ( (binary_expression "uVar28 + 1" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" if (parenthesized_expression "(*(char *)(local_110[3] + lVar16) != '\x01')" ( (binary_expression "*(char *)(local_110[3] + lVar16) != '\x01'" (pointer_expression "*(char *)(local_110[3] + lVar16)" * (cast_expression "(char *)(local_110[3] + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_110[3] + lVar16)" ( (binary_expression "local_110[3] + lVar16" (subscript_expression "local_110[3]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" { (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" identifier (argument_list "(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal )))) ;) (goto_statement "goto LAB_0010b063;" goto statement_identifier ;) })) (expression_statement "iVar7 = uVar28 + 2;" (assignment_expression "iVar7 = uVar28 + 2" identifier = (binary_expression "uVar28 + 2" identifier + number_literal)) ;) (expression_statement "bVar49 = false;" (assignment_expression "bVar49 = false" identifier = false) ;) (expression_statement "lVar24 = (long)iVar7;" (assignment_expression "lVar24 = (long)iVar7" identifier = (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "psVar47 = local_110;" (assignment_expression "psVar47 = local_110" identifier = identifier) ;) (labeled_statement "LAB_0010b255:\n                psVar6 = psVar47;" statement_identifier : (expression_statement "psVar6 = psVar47;" (assignment_expression "psVar6 = psVar47" identifier = identifier) ;)) (expression_statement "psVar47 = psVar6 + 9;" (assignment_expression "psVar47 = psVar6 + 9" identifier = (binary_expression "psVar6 + 9" identifier + number_literal)) ;) (if_statement "if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" if (parenthesized_expression "(psVar47 < psVar35)" ( (binary_expression "psVar47 < psVar35" identifier < identifier) )) (compound_statement "{\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" { (if_statement "if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(psVar6[0xb] == 0x100)" ( (binary_expression "psVar6[0xb] == 0x100" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" { (expression_statement "pvVar23 = (void *)psVar6[0xc];" (assignment_expression "pvVar23 = (void *)psVar6[0xc]" identifier = (cast_expression "(void *)psVar6[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar6[0xc]" identifier [ number_literal ]))) ;) (expression_statement "psVar36 = (size_t *)0x0;" (assignment_expression "psVar36 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" for ( (assignment_expression "psVar31 = psVar6" identifier = identifier) ; (binary_expression "local_110 <= psVar31" identifier <= identifier) ; (assignment_expression "psVar31 = psVar31 + -9" identifier = (binary_expression "psVar31 + -9" identifier + number_literal)) ) (compound_statement "{\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" { (expression_statement "pvVar26 = (void *)psVar31[3];" (assignment_expression "pvVar26 = (void *)psVar31[3]" identifier = (cast_expression "(void *)psVar31[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar31[3]" identifier [ number_literal ]))) ;) (expression_statement "psVar37 = psVar36;" (assignment_expression "psVar37 = psVar36" identifier = identifier) ;) (if_statement "if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" if (parenthesized_expression "((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))))" ( (binary_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" (parenthesized_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101))" ( (binary_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)" (parenthesized_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0))" ( (binary_expression "(psVar36 != (size_t *)0x0) || (psVar31[1] == 0)" (parenthesized_expression "(psVar36 != (size_t *)0x0)" ( (binary_expression "psVar36 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar31[1] == 0)" ( (binary_expression "psVar31[1] == 0" (subscript_expression "psVar31[1]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(psVar37 = psVar31, psVar31[2] != 0x101)" ( (comma_expression "psVar37 = psVar31, psVar31[2] != 0x101" (assignment_expression "psVar37 = psVar31" identifier = identifier) , (binary_expression "psVar31[2] != 0x101" (subscript_expression "psVar31[2]" identifier [ number_literal ]) != number_literal)) ))) )) && (parenthesized_expression "((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" ( (parenthesized_expression "(psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))" ( (comma_expression "psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (assignment_expression "psVar36 = psVar37" identifier = identifier) , (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16)" (pointer_expression "*(char *)((long)pvVar23 + lVar16)" * (cast_expression "(char *)((long)pvVar23 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + lVar16)" ( (binary_expression "(long)pvVar23 + lVar16" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) == (pointer_expression "*(char *)((long)pvVar26 + lVar16)" * (cast_expression "(char *)((long)pvVar26 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar16)" ( (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) && (parenthesized_expression "(psVar31[2] == 0x100)" ( (binary_expression "psVar31[2] == 0x100" (subscript_expression "psVar31[2]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" { (if_statement "if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" if (parenthesized_expression "(*(char *)((long)pvVar26 + lVar16) != '\x04')" ( (binary_expression "*(char *)((long)pvVar26 + lVar16) != '\x04'" (pointer_expression "*(char *)((long)pvVar26 + lVar16)" * (cast_expression "(char *)((long)pvVar26 + lVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar16)" ( (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" { (if_statement "if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" if (parenthesized_expression "((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))))" ( (binary_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" (parenthesized_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))))" ( (binary_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" (parenthesized_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0))" ( (binary_expression "(*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" (parenthesized_expression "(*psVar31 == *psVar47)" ( (binary_expression "*psVar31 == *psVar47" (pointer_expression "*psVar31" * identifier) == (pointer_expression "*psVar47" * identifier)) )) && (parenthesized_expression "(iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" ( (comma_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0" (assignment_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31)" identifier = (call_expression "memcmp(pvVar26,pvVar23,*psVar31)" identifier (argument_list "(pvVar26,pvVar23,*psVar31)" ( identifier , identifier , (pointer_expression "*psVar31" * identifier) )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" ( (parenthesized_expression "(uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))" ( (comma_expression "uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (assignment_expression "uVar29 = psVar31[7]" identifier = (subscript_expression "psVar31[7]" identifier [ number_literal ])) , (binary_expression "uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (binary_expression "uVar29 != 0" identifier != number_literal) && (parenthesized_expression "(uVar41 = psVar6[0x10], uVar41 != 0)" ( (comma_expression "uVar41 = psVar6[0x10], uVar41 != 0" (assignment_expression "uVar41 = psVar6[0x10]" identifier = (subscript_expression "psVar6[0x10]" identifier [ number_literal ])) , (binary_expression "uVar41 != 0" identifier != number_literal)) )))) )) ))) )) && (parenthesized_expression "((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" ( (parenthesized_expression "(0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))" ( (binary_expression "0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" (binary_expression "0xfffffffffffffff0 < uVar29" number_literal < identifier) || (parenthesized_expression "(psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" ( (binary_expression "psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)" (subscript_expression "psVar6[0xf]" identifier [ number_literal ]) <= (parenthesized_expression "(uVar29 + 0xf & 0xfffffffffffffff0)" ( (binary_expression "uVar29 + 0xf & 0xfffffffffffffff0" (binary_expression "uVar29 + 0xf" identifier + number_literal) & number_literal) ))) ))) )) ))) )) (compound_statement "{\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }" { (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }" if (parenthesized_expression "(uVar29 < uVar41)" ( (binary_expression "uVar29 < uVar41" identifier < identifier) )) (compound_statement "{\n                              psVar31[7] = uVar41;\n                            }" { (expression_statement "psVar31[7] = uVar41;" (assignment_expression "psVar31[7] = uVar41" (subscript_expression "psVar31[7]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" identifier = true) ;) (if_statement "if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" { (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" * (cast_expression "(undefined4 *)(psVar31 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar31 + 8)" ( (binary_expression "psVar31 + 8" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" else (if_statement "if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }" { (if_statement "if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }" if (parenthesized_expression "(((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0))" ( (binary_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)" (parenthesized_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0))" ( (binary_expression "(psVar6[10] == 0) && (psVar37 != (size_t *)0x0)" (parenthesized_expression "(psVar6[10] == 0)" ( (binary_expression "psVar6[10] == 0" (subscript_expression "psVar6[10]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(psVar37 != (size_t *)0x0)" ( (binary_expression "psVar37 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(psVar37[2] == 0)" ( (binary_expression "psVar37[2] == 0" (subscript_expression "psVar37[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                              psVar37[2] = 0x100;\n                            }" { (expression_statement "psVar37[2] = 0x100;" (assignment_expression "psVar37[2] = 0x100" (subscript_expression "psVar37[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" else (compound_statement "{\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" { (expression_statement "*(undefined4 *)(psVar6 + 0x11) = 1;" (assignment_expression "*(undefined4 *)(psVar6 + 0x11) = 1" (pointer_expression "*(undefined4 *)(psVar6 + 0x11)" * (cast_expression "(undefined4 *)(psVar6 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar6 + 0x11)" ( (binary_expression "psVar6 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "psVar6[0xb] = 0x101;" (assignment_expression "psVar6[0xb] = 0x101" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" * (cast_expression "(undefined4 *)(psVar31 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar31 + 8)" ( (binary_expression "psVar31 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "psVar31[2] = 0x101;" (assignment_expression "psVar31[2] = 0x101" (subscript_expression "psVar31[2]" identifier [ number_literal ]) = number_literal) ;) }))))) (break_statement "break;" break ;) })) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (for_statement "for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" for ( (assignment_expression "uVar41 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)*psVar47 - iVar7) != uVar41" (call_expression "(uint)((int)*psVar47 - iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*psVar47 - iVar7)" ( (binary_expression "(int)*psVar47 - iVar7" (cast_expression "(int)*psVar47" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar47" * identifier)) - identifier) ))) != identifier) ; (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ) (compound_statement "{\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" { (expression_statement "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" identifier = (binary_expression "uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(byte *)((long)pvVar23 + uVar41 + lVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + uVar41 + lVar24)" ( (binary_expression "(long)pvVar23 + uVar41 + lVar24" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + identifier) )))) << (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "sVar17 = *psVar31;" (assignment_expression "sVar17 = *psVar31" identifier = (pointer_expression "*psVar31" * identifier)) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (for_statement "for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" for ( (assignment_expression "uVar41 = 0" identifier = number_literal) ; (binary_expression "(uint)((int)sVar17 - iVar7) != uVar41" (call_expression "(uint)((int)sVar17 - iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)sVar17 - iVar7)" ( (binary_expression "(int)sVar17 - iVar7" (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) != identifier) ; (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ) (compound_statement "{\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" { (expression_statement "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" identifier = (binary_expression "uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" identifier | (binary_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" (subscript_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41]" (call_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((long)pvVar26 + lVar24))" ( (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar24)" ( (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) ))) [ identifier ]) << (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" ( (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = uVar29 + uVar45;" (assignment_expression "uVar29 = uVar29 + uVar45" identifier = (binary_expression "uVar29 + uVar45" identifier + identifier)) ;) (for_statement "for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" for ( (assignment_expression "uVar41 = uVar29" identifier = identifier) ; (binary_expression "uVar41 != 0" identifier != number_literal) ; (assignment_expression "uVar41 = uVar41 >> 8" identifier = (binary_expression "uVar41 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" { (expression_statement "uVar27 = (ulong)((int)uVar27 + 1);" (assignment_expression "uVar27 = (ulong)((int)uVar27 + 1)" identifier = (call_expression "(ulong)((int)uVar27 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar27 + 1)" ( (binary_expression "(int)uVar27 + 1" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (if_statement "if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" if (parenthesized_expression "(uVar27 < sVar17 - lVar24)" ( (binary_expression "uVar27 < sVar17 - lVar24" identifier < (binary_expression "sVar17 - lVar24" identifier - identifier)) )) (compound_statement "{\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" { (expression_statement "puVar30 = (undefined1 *)((long)pvVar26 + lVar24);" (assignment_expression "puVar30 = (undefined1 *)((long)pvVar26 + lVar24)" identifier = (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + lVar24)" ( (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) })) })) })) })) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) })) (if_statement "if (!bVar49) goto LAB_0010b098;" if (parenthesized_expression "(!bVar49)" ( (unary_expression "!bVar49" ! identifier) )) (goto_statement "goto LAB_0010b098;" goto statement_identifier ;)) (expression_statement "pvVar26 = (void *)xmalloc(uVar21);" (assignment_expression "pvVar26 = (void *)xmalloc(uVar21)" identifier = (cast_expression "(void *)xmalloc(uVar21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar21)" identifier (argument_list "(uVar21)" ( identifier ))))) ;) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = __dest_00;" (assignment_expression "local_f0 = __dest_00" identifier = identifier) ;) (expression_statement "pvVar23 = pvVar26;" (assignment_expression "pvVar23 = pvVar26" identifier = identifier) ;) (for_statement "for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" for ( (assignment_expression "psVar47 = local_110" identifier = identifier) ; (binary_expression "psVar47 < psVar35" identifier < identifier) ; (assignment_expression "psVar47 = psVar47 + 9" identifier = (binary_expression "psVar47 + 9" identifier + number_literal)) ) (compound_statement "{\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" { (expression_statement "sVar25 = *psVar47;" (assignment_expression "sVar25 = *psVar47" identifier = (pointer_expression "*psVar47" * identifier)) ;) (expression_statement "sVar5 = psVar47[2];" (assignment_expression "sVar5 = psVar47[2]" identifier = (subscript_expression "psVar47[2]" identifier [ number_literal ])) ;) (expression_statement "sVar18 = psVar47[1] + sVar25 + 0xc;" (assignment_expression "sVar18 = psVar47[1] + sVar25 + 0xc" identifier = (binary_expression "psVar47[1] + sVar25 + 0xc" (binary_expression "psVar47[1] + sVar25" (subscript_expression "psVar47[1]" identifier [ number_literal ]) + identifier) + number_literal)) ;) (expression_statement "pvVar48 = pvVar23;" (assignment_expression "pvVar48 = pvVar23" identifier = identifier) ;) (if_statement "if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" if (parenthesized_expression "(sVar5 != 0)" ( (binary_expression "sVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" { (if_statement "if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" if (parenthesized_expression "((int)psVar47[8] == 0)" ( (binary_expression "(int)psVar47[8] == 0" (cast_expression "(int)psVar47[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "psVar47[8]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }" { (expression_statement "memcpy(pvVar23,local_f0,sVar18);" (call_expression "memcpy(pvVar23,local_f0,sVar18)" identifier (argument_list "(pvVar23,local_f0,sVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar23 + sVar18);" (assignment_expression "pvVar48 = (void *)((long)pvVar23 + sVar18)" identifier = (cast_expression "(void *)((long)pvVar23 + sVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + sVar18)" ( (binary_expression "(long)pvVar23 + sVar18" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" else (compound_statement "{\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" { (expression_statement "sVar3 = psVar47[6];" (assignment_expression "sVar3 = psVar47[6]" identifier = (subscript_expression "psVar47[6]" identifier [ number_literal ])) ;) (expression_statement "__dest = (void *)((long)pvVar23 + 0xc);" (assignment_expression "__dest = (void *)((long)pvVar23 + 0xc)" identifier = (cast_expression "(void *)((long)pvVar23 + 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar23 + 0xc)" ( (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);" (assignment_expression "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48)" identifier = (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pvVar48 = (void *)((long)__dest + sVar25);" (assignment_expression "pvVar48 = (void *)((long)__dest + sVar25)" identifier = (cast_expression "(void *)((long)__dest + sVar25)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + sVar25)" ( (binary_expression "(long)__dest + sVar25" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" if (parenthesized_expression "((sVar3 == local_e8) && (psVar47[7] == sVar17))" ( (binary_expression "(sVar3 == local_e8) && (psVar47[7] == sVar17)" (parenthesized_expression "(sVar3 == local_e8)" ( (binary_expression "sVar3 == local_e8" identifier == identifier) )) && (parenthesized_expression "(psVar47[7] == sVar17)" ( (binary_expression "psVar47[7] == sVar17" (subscript_expression "psVar47[7]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }" { (expression_statement "(*pcVar4)(sVar25,pvVar23);" (call_expression "(*pcVar4)(sVar25,pvVar23)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(sVar25,pvVar23)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(0,(long)pvVar23 + 4)" ( number_literal , (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar5,(long)pvVar23 + 8)" ( identifier , (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" identifier (argument_list "(__dest,(void *)psVar47[3],sVar25)" ( identifier , (cast_expression "(void *)psVar47[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar47[3]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" else (compound_statement "{\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" { (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "cVar42 = '\b';" (assignment_expression "cVar42 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" if (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5)" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" { (expression_statement "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';" (assignment_expression "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" identifier = (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b'" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) * (char_literal "'\b'" ' escape_sequence ')) + (char_literal "'\b'" ' escape_sequence '))) ;) })) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(cVar42,(long)pvVar23 + 4)" ( identifier , (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar5,(long)pvVar23 + 8)" ( identifier , (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" identifier (argument_list "(__dest,(void *)psVar47[3],sVar25)" ( identifier , (cast_expression "(void *)psVar47[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar47[3]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" if (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" ( (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" ( (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" * (cast_expression "(int *)(lVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" ( (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" * (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" ( (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" * (cast_expression "(long *)(param_1 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }" { (expression_statement "(**(code **)(lVar16 + 0x30))();" (call_expression "(**(code **)(lVar16 + 0x30))()" (parenthesized_expression "(**(code **)(lVar16 + 0x30))" ( (pointer_expression "**(code **)(lVar16 + 0x30)" * (pointer_expression "*(code **)(lVar16 + 0x30)" * (cast_expression "(code **)(lVar16 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8))" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x30)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x30)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x30)" ( (binary_expression "*(long *)(param_1 + 8) + 0x30" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar47[7],(void *)((long)pvVar48 + 8))" ( (subscript_expression "psVar47[7]" identifier [ number_literal ]) , (cast_expression "(void *)((long)pvVar48 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 8)" ( (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 0x10);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 0x10)" identifier = (cast_expression "(void *)((long)pvVar48 + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 0x10)" ( (binary_expression "(long)pvVar48 + 0x10" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" else (compound_statement "{\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" { (expression_statement "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48);" (call_expression "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48)" (parenthesized_expression "(**(code **)(lVar16 + 0x48))" ( (pointer_expression "**(code **)(lVar16 + 0x48)" * (pointer_expression "*(code **)(lVar16 + 0x48)" * (cast_expression "(code **)(lVar16 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x48)" ( (binary_expression "lVar16 + 0x48" identifier + number_literal) ))))) )) (argument_list "(sVar3,pvVar48)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" ( (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" * (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" * (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" ( (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar47[7],(long)pvVar48 + 4)" ( (subscript_expression "psVar47[7]" identifier [ number_literal ]) , (binary_expression "(long)pvVar48 + 4" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) ;) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 8);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 8)" identifier = (cast_expression "(void *)((long)pvVar48 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar48 + 8)" ( (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) }))) }))) (expression_statement "local_e8 = psVar47[6];" (assignment_expression "local_e8 = psVar47[6]" identifier = (subscript_expression "psVar47[6]" identifier [ number_literal ])) ;) (expression_statement "sVar17 = psVar47[7];" (assignment_expression "sVar17 = psVar47[7]" identifier = (subscript_expression "psVar47[7]" identifier [ number_literal ])) ;) })) (expression_statement "local_f0 = (void *)((long)local_f0 + sVar18);" (assignment_expression "local_f0 = (void *)((long)local_f0 + sVar18)" identifier = (cast_expression "(void *)((long)local_f0 + sVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_f0 + sVar18)" ( (binary_expression "(long)local_f0 + sVar18" (cast_expression "(long)local_f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "pvVar23 = pvVar48;" (assignment_expression "pvVar23 = pvVar48" identifier = identifier) ;) })) (expression_statement "sVar17 = (long)pvVar23 - (long)pvVar26;" (assignment_expression "sVar17 = (long)pvVar23 - (long)pvVar26" identifier = (binary_expression "(long)pvVar23 - (long)pvVar26" (cast_expression "(long)pvVar23" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "memcpy(__dest_00,pvVar26,sVar17);" (call_expression "memcpy(__dest_00,pvVar26,sVar17)" identifier (argument_list "(__dest_00,pvVar26,sVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" identifier (argument_list "(pvVar26)" ( identifier ))) ;) (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;) (expression_statement "DAT_0012cb10 = sVar17;" (assignment_expression "DAT_0012cb10 = sVar17" identifier = identifier) ;) (if_statement "if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" if (parenthesized_expression "(uVar21 != sVar17)" ( (binary_expression "uVar21 != sVar17" identifier != identifier) )) (compound_statement "{\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" { (if_statement "if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;" if (parenthesized_expression "((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0))" ( (binary_expression "(*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" (parenthesized_expression "(*(long *)(lVar38 + 0x68) != 0)" ( (binary_expression "*(long *)(lVar38 + 0x68) != 0" (pointer_expression "*(long *)(lVar38 + 0x68)" * (cast_expression "(long *)(lVar38 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" identifier = (call_expression "bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" identifier (argument_list "(param_2,*(long *)(lVar38 + 0x68),sVar17)" ( identifier , (pointer_expression "*(long *)(lVar38 + 0x68)" * (cast_expression "(long *)(lVar38 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x68)" ( (binary_expression "lVar38 + 0x68" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0010941b;" goto statement_identifier ;)) (expression_statement "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5)" identifier = (call_expression "dcgettext(0,"warning: failed to set merged notes size",5)" identifier (argument_list "(0,"warning: failed to set merged notes size",5)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" else (compound_statement "{\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" { (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" identifier (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal )))) ;) (labeled_statement "LAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" statement_identifier : (if_statement "if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" { (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" identifier (argument_list "(0x11)" ( number_literal ))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,lVar16);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,lVar16)" identifier (argument_list "(0,param_1,lVar38,lVar16)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0010b098:\n                free(local_110);" statement_identifier : (expression_statement "free(local_110);" (call_expression "free(local_110)" identifier (argument_list "(local_110)" ( identifier ))) ;)) }))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) (expression_statement "DAT_0012cb10 = 0;" (assignment_expression "DAT_0012cb10 = 0" identifier = number_literal) ;) }))) }))) })) (labeled_statement "LAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" statement_identifier : (for_statement "for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" for ( (assignment_expression "puVar33 = DAT_0012ca98" identifier = identifier) ; (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar33[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar33[1])" identifier (argument_list "(param_1,puVar33[1])" ( identifier , (subscript_expression "puVar33[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }" { (expression_statement "uVar12 = puVar33[1];" (assignment_expression "uVar12 = puVar33[1]" identifier = (subscript_expression "puVar33[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier = (call_expression "dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" identifier (argument_list "(0,"can\'t dump section \'%s\' - it does not exist",5)" ( number_literal , (string_literal ""can\'t dump section \'%s\' - it does not exist"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar13,uVar12)" identifier (argument_list "(0,param_1,0,uVar13,uVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" else (compound_statement "{\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" { (expression_statement "pcVar39 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar39 = "can\'t dump section - it has no contents"" identifier = (string_literal ""can\'t dump section - it has no contents"" " string_content escape_sequence string_content ")) ;) (if_statement "if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" if (parenthesized_expression "((*(byte *)(lVar38 + 0x21) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar38 + 0x21) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar38 + 0x21) & 1)" ( (binary_expression "*(byte *)(lVar38 + 0x21) & 1" (pointer_expression "*(byte *)(lVar38 + 0x21)" * (cast_expression "(byte *)(lVar38 + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x21)" ( (binary_expression "lVar38 + 0x21" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" { (expression_statement "sVar17 = *(size_t *)(lVar38 + 0x38);" (assignment_expression "sVar17 = *(size_t *)(lVar38 + 0x38)" identifier = (pointer_expression "*(size_t *)(lVar38 + 0x38)" * (cast_expression "(size_t *)(lVar38 + 0x38)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" if (parenthesized_expression "(sVar17 != 0)" ( (binary_expression "sVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" { (expression_statement "__s = fopen((char *)puVar33[2],"w");" (assignment_expression "__s = fopen((char *)puVar33[2],"w")" identifier = (call_expression "fopen((char *)puVar33[2],"w")" identifier (argument_list "((char *)puVar33[2],"w")" ( (cast_expression "(char *)puVar33[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[2]" identifier [ number_literal ])) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" if (parenthesized_expression "(__s == (FILE *)0x0)" ( (binary_expression "__s == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }" { (expression_statement "uVar12 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar12 = dcgettext(0,"could not open section dump file",5)" identifier = (call_expression "dcgettext(0,"could not open section dump file",5)" identifier (argument_list "(0,"could not open section dump file",5)" ( number_literal , (string_literal ""could not open section dump file"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(puVar33[2],0,0,uVar12);" (call_expression "FUN_0011c0d0(puVar33[2],0,0,uVar12)" identifier (argument_list "(puVar33[2],0,0,uVar12)" ( (subscript_expression "puVar33[2]" identifier [ number_literal ]) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" else (compound_statement "{\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" { (expression_statement "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);" (assignment_expression "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58)" identifier = (call_expression "bfd_malloc_and_get_section(param_1,lVar38,&local_58)" identifier (argument_list "(param_1,lVar38,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }" { (expression_statement "uVar12 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar12 = dcgettext(0,"could not retrieve section contents",5)" identifier = (call_expression "dcgettext(0,"could not retrieve section contents",5)" identifier (argument_list "(0,"could not retrieve section contents",5)" ( number_literal , (string_literal ""could not retrieve section contents"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" else (compound_statement "{\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" { (expression_statement "sVar18 = fwrite(local_58,1,sVar17,__s);" (assignment_expression "sVar18 = fwrite(local_58,1,sVar17,__s)" identifier = (call_expression "fwrite(local_58,1,sVar17,__s)" identifier (argument_list "(local_58,1,sVar17,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" if (parenthesized_expression "(sVar17 != sVar18)" ( (binary_expression "sVar17 != sVar18" identifier != identifier) )) (compound_statement "{\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" { (expression_statement "piVar22 = __errno_location();" (assignment_expression "piVar22 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar39 = strerror(*piVar22);" (assignment_expression "pcVar39 = strerror(*piVar22)" identifier = (call_expression "strerror(*piVar22)" identifier (argument_list "(*piVar22)" ( (pointer_expression "*piVar22" * identifier) )))) ;) (expression_statement "uVar12 = puVar33[2];" (assignment_expression "uVar12 = puVar33[2]" identifier = (subscript_expression "puVar33[2]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5)" identifier = (call_expression "dcgettext(0,"error writing section contents to %s (error: %s)",5)" identifier (argument_list "(0,"error writing section contents to %s (error: %s)",5)" ( number_literal , (string_literal ""error writing section contents to %s (error: %s)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12,pcVar39);" (call_expression "FUN_0011b660(uVar13,uVar12,pcVar39)" identifier (argument_list "(uVar13,uVar12,pcVar39)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "fclose(__s);" (call_expression "fclose(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) }))) (goto_statement "goto LAB_001094a8;" goto statement_identifier ;) })) (expression_statement "pcVar39 = "can\'t dump section - it is empty";" (assignment_expression "pcVar39 = "can\'t dump section - it is empty"" identifier = (string_literal ""can\'t dump section - it is empty"" " string_content escape_sequence string_content ")) ;) })) (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" identifier (argument_list "(0,param_1,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;" statement_identifier : (ERROR "}" }) (expression_statement "local_a8 = DAT_0012ca90;" (assignment_expression "local_a8 = DAT_0012ca90" identifier = identifier) ;)) (if_statement "if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" if (parenthesized_expression "(DAT_0012ca90 != 0)" ( (binary_expression "DAT_0012ca90 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(param_2,".gnu_debuglink")" identifier (argument_list "(param_2,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }" { (expression_statement "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);" (assignment_expression "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" identifier = (call_expression "bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" identifier (argument_list "(param_2,DAT_0012ca90)" ( identifier , identifier )))) ;) (if_statement "if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" { (expression_statement "pcVar39 = "cannot create debug link section `%s\'";" (assignment_expression "pcVar39 = "cannot create debug link section `%s\'"" identifier = (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ")) ;) (expression_statement "lVar38 = DAT_0012ca90;" (assignment_expression "lVar38 = DAT_0012ca90" identifier = identifier) ;) (labeled_statement "LAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" identifier (argument_list "(0,param_2,0,uVar12,lVar38)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" if (parenthesized_expression "(*(int *)(param_2[1] + 8) == 2)" ( (binary_expression "*(int *)(param_2[1] + 8) == 2" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" { (expression_statement "lVar38 = param_2[0x12];" (assignment_expression "lVar38 = param_2[0x12]" identifier = (subscript_expression "param_2[0x12]" identifier [ number_literal ])) ;) (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" identifier = number_literal) ;) (if_statement "if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" if (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }" { (labeled_statement "LAB_0010ad5e:\n                uVar29 = 0x1000;" statement_identifier : (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" else (compound_statement "{\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" { (do_statement "do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);" do (compound_statement "{\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                }" { (expression_statement "lVar24 = lVar16;" (assignment_expression "lVar24 = lVar16" identifier = identifier) ;) (if_statement "if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }" if (parenthesized_expression "(((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)))" ( (binary_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" (parenthesized_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0))" ( (binary_expression "(*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)" (parenthesized_expression "(*(ulong *)(lVar38 + 0x28) != 0)" ( (binary_expression "*(ulong *)(lVar38 + 0x28) != 0" (pointer_expression "*(ulong *)(lVar38 + 0x28)" * (cast_expression "(ulong *)(lVar38 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(lVar24 = lVar38, lVar16 != 0)" ( (comma_expression "lVar24 = lVar38, lVar16 != 0" (assignment_expression "lVar24 = lVar38" identifier = identifier) , (binary_expression "lVar16 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" ( (comma_expression "lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (assignment_expression "lVar24 = lVar16" identifier = identifier) , (binary_expression "*(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (pointer_expression "*(ulong *)(lVar16 + 0x28)" * (cast_expression "(ulong *)(lVar16 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) < (pointer_expression "*(ulong *)(lVar38 + 0x28)" * (cast_expression "(ulong *)(lVar38 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x28)" ( (binary_expression "lVar38 + 0x28" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                    lVar24 = lVar38;\n                  }" { (expression_statement "lVar24 = lVar38;" (assignment_expression "lVar24 = lVar38" identifier = identifier) ;) })) (expression_statement "lVar38 = *(long *)(lVar38 + 0x10);" (assignment_expression "lVar38 = *(long *)(lVar38 + 0x10)" identifier = (pointer_expression "*(long *)(lVar38 + 0x10)" * (cast_expression "(long *)(lVar38 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x10)" ( (binary_expression "lVar38 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar24;" (assignment_expression "lVar16 = lVar24" identifier = identifier) ;) }) while (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) ;) (if_statement "if (lVar24 == 0) goto LAB_0010ad5e;" if (parenthesized_expression "(lVar24 == 0)" ( (binary_expression "lVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010ad5e;" goto statement_identifier ;)) (expression_statement "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);" (assignment_expression "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" identifier = (binary_expression "*(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" (pointer_expression "*(long *)(lVar24 + 0x38)" * (cast_expression "(long *)(lVar24 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar24 + 0x38)" ( (binary_expression "lVar24 + 0x38" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar24 + 0x28)" * (cast_expression "(long *)(lVar24 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar24 + 0x28)" ( (binary_expression "lVar24 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" if (parenthesized_expression "(uVar21 < 0xfffffffffffff001)" ( (binary_expression "uVar21 < 0xfffffffffffff001" identifier < number_literal) )) (compound_statement "{\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" { (expression_statement "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;" (assignment_expression "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000" identifier = (binary_expression "uVar21 + 0xfff & 0xfffffffffffff000" (binary_expression "uVar21 + 0xfff" identifier + number_literal) & number_literal)) ;) })) }))) (expression_statement "*(ulong *)(local_a8 + 0x30) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x30) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x30)" * (cast_expression "(ulong *)(local_a8 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x30)" ( (binary_expression "local_a8 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(local_a8 + 0x28) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x28) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x28)" * (cast_expression "(ulong *)(local_a8 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x28)" ( (binary_expression "local_a8 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;" (assignment_expression "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" * (cast_expression "(byte *)(local_a8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x24)" ( (binary_expression "local_a8 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" * (cast_expression "(byte *)(local_a8 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + 0x24)" ( (binary_expression "local_a8 + 0x24" identifier + number_literal) )))) | number_literal)) ;) })) }) (else_clause "else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" else (compound_statement "{\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" { (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar13 = dcgettext(0,"%s: debuglink section already exists",5);" (assignment_expression "uVar13 = dcgettext(0,"%s: debuglink section already exists",5)" identifier = (call_expression "dcgettext(0,"%s: debuglink section already exists",5)" identifier (argument_list "(0,"%s: debuglink section already exists",5)" ( number_literal , (string_literal ""%s: debuglink section already exists"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012ca90 = 0;" (assignment_expression "DAT_0012ca90 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) }))) })) (expression_statement "uVar28 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar28 = *(uint *)(param_2 + 0x14)" identifier = (pointer_expression "*(uint *)(param_2 + 0x14)" * (cast_expression "(uint *)(param_2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0))" ( (binary_expression "(uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" ( (binary_expression "DAT_0012cad0 == 0 && DAT_0012cac8 == 0" (binary_expression "DAT_0012cad0 == 0" identifier == number_literal) && (binary_expression "DAT_0012cac8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (ulong *)0x0;" (assignment_expression "local_90 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (long *)0x0;" (assignment_expression "local_98 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) }) (else_clause "else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "sVar17 = (ulong)uVar28 * 8;" (assignment_expression "sVar17 = (ulong)uVar28 * 8" identifier = (binary_expression "(ulong)uVar28 * 8" (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "local_98 = (long *)xmalloc(sVar17);" (assignment_expression "local_98 = (long *)xmalloc(sVar17)" identifier = (cast_expression "(long *)xmalloc(sVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17)" identifier (argument_list "(sVar17)" ( identifier ))))) ;) (expression_statement "local_58 = local_98;" (assignment_expression "local_58 = local_98" identifier = identifier) ;) (expression_statement "bfd_map_over_sections(param_2,FUN_001071c0,&local_58);" (call_expression "bfd_map_over_sections(param_2,FUN_001071c0,&local_58)" identifier (argument_list "(param_2,FUN_001071c0,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "qsort(local_98,(ulong)uVar28,8,FUN_001071d0);" (call_expression "qsort(local_98,(ulong)uVar28,8,FUN_001071d0)" identifier (argument_list "(local_98,(ulong)uVar28,8,FUN_001071d0)" ( identifier , (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , identifier ))) ;) (expression_statement "local_90 = (ulong *)xmalloc(sVar17);" (assignment_expression "local_90 = (ulong *)xmalloc(sVar17)" identifier = (cast_expression "(ulong *)xmalloc(sVar17)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17)" identifier (argument_list "(sVar17)" ( identifier ))))) ;) (expression_statement "memset(local_90,0,sVar17);" (call_expression "memset(local_90,0,sVar17)" identifier (argument_list "(local_90,0,sVar17)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" if (parenthesized_expression "((DAT_0012cad0 != 0) && (uVar28 != 1))" ( (binary_expression "(DAT_0012cad0 != 0) && (uVar28 != 1)" (parenthesized_expression "(DAT_0012cad0 != 0)" ( (binary_expression "DAT_0012cad0 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar28 != 1)" ( (binary_expression "uVar28 != 1" identifier != number_literal) ))) )) (compound_statement "{\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" { (expression_statement "plVar15 = local_98;" (assignment_expression "plVar15 = local_98" identifier = identifier) ;) (expression_statement "puVar32 = local_90;" (assignment_expression "puVar32 = local_90" identifier = identifier) ;) (do_statement "do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);" do (compound_statement "{\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            }" { (expression_statement "lVar38 = *plVar15;" (assignment_expression "lVar38 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) ;) (if_statement "if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" if (parenthesized_expression "((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102)" ( (binary_expression "(*(uint *)(lVar38 + 0x20) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(lVar38 + 0x20) & 0x102)" ( (binary_expression "*(uint *)(lVar38 + 0x20) & 0x102" (pointer_expression "*(uint *)(lVar38 + 0x20)" * (cast_expression "(uint *)(lVar38 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x20)" ( (binary_expression "lVar38 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" { (expression_statement "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" identifier = (binary_expression "*(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))))) ;) (if_statement "if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" if (parenthesized_expression "(uVar29 < *(ulong *)(plVar15[1] + 0x30))" ( (binary_expression "uVar29 < *(ulong *)(plVar15[1] + 0x30)" identifier < (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" * (cast_expression "(ulong *)(plVar15[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15[1] + 0x30)" ( (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" { (expression_statement "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;" (assignment_expression "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29" identifier = (binary_expression "*(ulong *)(plVar15[1] + 0x30) - uVar29" (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" * (cast_expression "(ulong *)(plVar15[1] + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15[1] + 0x30)" ( (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + number_literal) )))) - identifier)) ;) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" identifier (argument_list "(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" ( identifier , identifier , (binary_expression "*(long *)(lVar38 + 0x38) + uVar29" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" { (expression_statement "uVar12 = dcgettext(0,"Can\'t fill gap after section",5);" (assignment_expression "uVar12 = dcgettext(0,"Can\'t fill gap after section",5)" identifier = (call_expression "dcgettext(0,"Can\'t fill gap after section",5)" identifier (argument_list "(0,"Can\'t fill gap after section",5)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,*plVar15,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,*plVar15,uVar12)" identifier (argument_list "(0,param_2,*plVar15,uVar12)" ( number_literal , identifier , (pointer_expression "*plVar15" * identifier) , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "*puVar32 = uVar29;" (assignment_expression "*puVar32 = uVar29" (pointer_expression "*puVar32" * identifier) = identifier) ;) (if_statement "if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }" if (parenthesized_expression "(uVar21 < uVar29)" ( (binary_expression "uVar21 < uVar29" identifier < identifier) )) (compound_statement "{\n                    uVar21 = uVar29;\n                  }" { (expression_statement "uVar21 = uVar29;" (assignment_expression "uVar21 = uVar29" identifier = identifier) ;) })) })) })) (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" identifier = (binary_expression "plVar15 + 1" identifier + number_literal)) ;) (expression_statement "puVar32 = puVar32 + 1;" (assignment_expression "puVar32 = puVar32 + 1" identifier = (binary_expression "puVar32 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) }) while (parenthesized_expression "(local_98 + (ulong)(uVar28 - 2) + 1 != plVar15)" ( (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1 != plVar15" (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1" (binary_expression "local_98 + (ulong)(uVar28 - 2)" identifier + (call_expression "(ulong)(uVar28 - 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar28 - 2)" ( (binary_expression "uVar28 - 2" identifier - number_literal) )))) + number_literal) != identifier) )) ;) })) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) (if_statement "if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(DAT_0012cac8 != 0)" ( (binary_expression "DAT_0012cac8 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" { (expression_statement "lVar38 = local_98[uVar28 - 1];" (assignment_expression "lVar38 = local_98[uVar28 - 1]" identifier = (subscript_expression "local_98[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ])) ;) (expression_statement "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" identifier = (binary_expression "*(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) )))))) ;) (if_statement "if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" if (parenthesized_expression "(uVar29 < DAT_0012cac0)" ( (binary_expression "uVar29 < DAT_0012cac0" identifier < identifier) )) (compound_statement "{\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" { (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" identifier (argument_list "(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" ( identifier , identifier , (binary_expression "DAT_0012cac0 - *(long *)(lVar38 + 0x30)" identifier - (pointer_expression "*(long *)(lVar38 + 0x30)" * (cast_expression "(long *)(lVar38 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x30)" ( (binary_expression "lVar38 + 0x30" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }" { (expression_statement "uVar12 = dcgettext(0,"can\'t add padding",5);" (assignment_expression "uVar12 = dcgettext(0,"can\'t add padding",5)" identifier = (call_expression "dcgettext(0,"can\'t add padding",5)" identifier (argument_list "(0,"can\'t add padding",5)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);" (call_expression "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12)" identifier (argument_list "(0,param_2,local_98[uVar28 - 1],uVar12)" ( number_literal , identifier , (subscript_expression "local_98[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ]) , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" else (compound_statement "{\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" { (expression_statement "uVar21 = DAT_0012cac0 - uVar29;" (assignment_expression "uVar21 = DAT_0012cac0 - uVar29" identifier = (binary_expression "DAT_0012cac0 - uVar29" identifier - identifier)) ;) (expression_statement "local_90[uVar28 - 1] = uVar21;" (assignment_expression "local_90[uVar28 - 1] = uVar21" (subscript_expression "local_90[uVar28 - 1]" identifier [ (binary_expression "uVar28 - 1" identifier - number_literal) ]) = identifier) ;) (if_statement "if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }" if (parenthesized_expression "(uVar21 <= local_a0)" ( (binary_expression "uVar21 <= local_a0" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = local_a0;\n                }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" identifier = identifier) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" if (parenthesized_expression "(DAT_0012ca88 != 0)" ( (binary_expression "DAT_0012ca88 != 0" identifier != number_literal) )) (compound_statement "{\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" { (expression_statement "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);" (assignment_expression "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" identifier = (call_expression "FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" identifier (argument_list "(param_1,DAT_0012cb40,local_100,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" if (parenthesized_expression "(DAT_0012cb0c - 2U < 6)" ( (binary_expression "DAT_0012cb0c - 2U < 6" (binary_expression "DAT_0012cb0c - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }" { (labeled_statement "LAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" statement_identifier : (if_statement "if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" if (parenthesized_expression "(DAT_0012cb0c != 7)" ( (binary_expression "DAT_0012cb0c != 7" identifier != number_literal) )) (compound_statement "{\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" { (labeled_statement "LAB_00109b5f:\n            bfd_set_error(0);" statement_identifier : (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);" (call_expression "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40)" identifier (argument_list "(param_1,FUN_00108e30,DAT_0012cb40)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = bfd_get_error();" (assignment_expression "iVar7 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);" (assignment_expression "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" identifier = (cast_expression "(long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" identifier (argument_list "((local_100 + 1 + (long)DAT_0012ca18) * 8)" ( (binary_expression "(local_100 + 1 + (long)DAT_0012ca18) * 8" (parenthesized_expression "(local_100 + 1 + (long)DAT_0012ca18)" ( (binary_expression "local_100 + 1 + (long)DAT_0012ca18" (binary_expression "local_100 + 1" identifier + number_literal) + (cast_expression "(long)DAT_0012ca18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) * number_literal) ))))) ;) (expression_statement "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;" (assignment_expression "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42" (field_expression "local_b8._0_4_" identifier . field_identifier) = (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" * (cast_expression "(uint *)(param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "DAT_0012cb38 = plVar15;" (assignment_expression "DAT_0012cb38 = plVar15" identifier = identifier) ;) (if_statement "if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" { (expression_statement "plVar34 = DAT_0012cb40 + local_100;" (assignment_expression "plVar34 = DAT_0012cb40 + local_100" identifier = (binary_expression "DAT_0012cb40 + local_100" identifier + identifier)) ;) (expression_statement "local_110 = (size_t *)DAT_0012cb40;" (assignment_expression "local_110 = (size_t *)DAT_0012cb40" identifier = (cast_expression "(size_t *)DAT_0012cb40" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);" do (compound_statement "{\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            }" { (expression_statement "iVar7 = DAT_0012ca18;" (assignment_expression "iVar7 = DAT_0012ca18" identifier = identifier) ;) (expression_statement "plVar2 = (long *)*local_110;" (assignment_expression "plVar2 = (long *)*local_110" identifier = (cast_expression "(long *)*local_110" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_110" * identifier))) ;) (expression_statement "uVar28 = *(uint *)(plVar2 + 3);" (assignment_expression "uVar28 = *(uint *)(plVar2 + 3)" identifier = (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) ))))) ;) (expression_statement "plVar19 = (long *)plVar2[1];" (assignment_expression "plVar19 = (long *)plVar2[1]" identifier = (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar38 = plVar2[4];" (assignment_expression "lVar38 = plVar2[4]" identifier = (subscript_expression "plVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0))" ( (binary_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" ( (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" ( (binary_expression "DAT_0012ca20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_0012ca18)" ( (binary_expression "0 < DAT_0012ca18" number_literal < identifier) ))) )) && (parenthesized_expression "(pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" ( (comma_expression "pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0" (assignment_expression "pcVar39 = (char *)DAT_0012ca20[5]" identifier = (cast_expression "(char *)DAT_0012ca20[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0012ca20[5]" identifier [ number_literal ]))) , (binary_expression "pcVar39 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "plVar46 = DAT_0012ca20;" (assignment_expression "plVar46 = DAT_0012ca20" identifier = identifier) ;) (while_statement "while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" while (parenthesized_expression "(iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0)" ( (comma_expression "iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0" (assignment_expression "iVar11 = strcmp(pcVar39,(char *)plVar19)" identifier = (call_expression "strcmp(pcVar39,(char *)plVar19)" identifier (argument_list "(pcVar39,(char *)plVar19)" ( identifier , (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) )) (compound_statement "{\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "plVar46 = (long *)*plVar46;" (assignment_expression "plVar46 = (long *)*plVar46" identifier = (cast_expression "(long *)*plVar46" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar46" * identifier))) ;) (if_statement "if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;" if (parenthesized_expression "((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))" ( (binary_expression "(iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" (parenthesized_expression "(iVar10 == iVar7)" ( (binary_expression "iVar10 == iVar7" identifier == identifier) )) || (parenthesized_expression "(pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" ( (comma_expression "pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0" (assignment_expression "pcVar39 = (char *)plVar46[5]" identifier = (cast_expression "(char *)plVar46[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar46[5]" identifier [ number_literal ]))) , (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109cb0;" goto statement_identifier ;)) })) (expression_statement "free(pcVar39);" (call_expression "free(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier ))) ;) (expression_statement "plVar46[5] = (long)"";" (assignment_expression "plVar46[5] = (long)""" (subscript_expression "plVar46[5]" identifier [ number_literal ]) = (cast_expression "(long)""" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (string_literal """" " "))) ;) (expression_statement "lVar16 = FUN_00108200(plVar46,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar46,param_2)" identifier = (call_expression "FUN_00108200(plVar46,param_2)" identifier (argument_list "(plVar46,param_2)" ( identifier , identifier )))) ;) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);" statement_identifier : (expression_statement "lVar16 = htab_elements(DAT_0012ca30);" (assignment_expression "lVar16 = htab_elements(DAT_0012ca30)" identifier = (call_expression "htab_elements(DAT_0012ca30)" identifier (argument_list "(DAT_0012ca30)" ( identifier )))) ;)) (expression_statement "plVar46 = plVar19;" (assignment_expression "plVar46 = plVar19" identifier = identifier) ;) (if_statement "if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" if (parenthesized_expression "((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0))" ( (binary_expression "(lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0)" ( (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" identifier = identifier) ;) (expression_statement "lVar16 = htab_find(DAT_0012ca30,&local_58);" (assignment_expression "lVar16 = htab_find(DAT_0012ca30,&local_58)" identifier = (call_expression "htab_find(DAT_0012ca30,&local_58)" identifier (argument_list "(DAT_0012ca30,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" if (parenthesized_expression "(((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0))" ( (binary_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" (parenthesized_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46))" ( (binary_expression "(lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" ( (comma_expression "plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46" (assignment_expression "plVar46 = *(long **)(lVar16 + 8)" identifier = (pointer_expression "*(long **)(lVar16 + 8)" * (cast_expression "(long **)(lVar16 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) , (binary_expression "plVar19 == plVar46" identifier == identifier)) ))) )) && (parenthesized_expression "(puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" ( (comma_expression "puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0" (assignment_expression "puVar33 = DAT_0012cb48" identifier = identifier) , (binary_expression "(uVar28 & 0x100) != 0" (parenthesized_expression "(uVar28 & 0x100)" ( (binary_expression "uVar28 & 0x100" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" { (for_statement "for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" for ( ; (comma_expression "plVar46 = plVar19, puVar33 != (undefined8 *)0x0" (assignment_expression "plVar46 = plVar19" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)puVar33[3]" identifier = (cast_expression "(undefined8 *)puVar33[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[3]" identifier [ number_literal ]))) ) (compound_statement "{\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" { (expression_statement "iVar7 = strcmp((char *)*puVar33,(char *)plVar19);" (assignment_expression "iVar7 = strcmp((char *)*puVar33,(char *)plVar19)" identifier = (call_expression "strcmp((char *)*puVar33,(char *)plVar19)" identifier (argument_list "((char *)*puVar33,(char *)plVar19)" ( (cast_expression "(char *)*puVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) , (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" { (expression_statement "plVar46 = (long *)puVar33[1];" (assignment_expression "plVar46 = (long *)puVar33[1]" identifier = (cast_expression "(long *)puVar33[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[1]" identifier [ number_literal ]))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" identifier = identifier) ;) (expression_statement "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);" (assignment_expression "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 8) + 0x1c" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" if (parenthesized_expression "((char)*plVar46 == cVar42)" ( (binary_expression "(char)*plVar46 == cVar42" (cast_expression "(char)*plVar46" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*plVar46" * identifier)) == identifier) )) (compound_statement "{\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }" { (if_statement "if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" if (parenthesized_expression "(DAT_0012ca7c == 0)" ( (binary_expression "DAT_0012ca7c == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" { (if_statement "if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;" if (parenthesized_expression "((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))))" ( (binary_expression "(DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" (parenthesized_expression "(DAT_0012ca78 == 0)" ( (binary_expression "DAT_0012ca78 == 0" identifier == number_literal) )) || (parenthesized_expression "((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" ( (parenthesized_expression "(((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" ( (binary_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678))" ( (binary_expression "(uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)" (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) == number_literal) && (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;)) (labeled_statement "LAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);" statement_identifier : (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" identifier = (cast_expression "(long *)((long)plVar46 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar46 + 1)" ( (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;)) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (goto_statement "goto LAB_00109d39;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;" if (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00109f88;" goto statement_identifier ;)) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" if (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" { (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" identifier = (cast_expression "(long *)((long)plVar46 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar46 + 1)" ( (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (goto_statement "goto LAB_00109fa6;" goto statement_identifier ;) })) (expression_statement "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar46" * (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }) (else_clause "else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" else (compound_statement "{\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" { (if_statement "if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" if (parenthesized_expression "(((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0'))" ( (binary_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')" (parenthesized_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0'))" ( (binary_expression "(DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')" (parenthesized_expression "(DAT_0012ca7c == 0)" ( (binary_expression "DAT_0012ca7c == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar42 != '\0')" ( (binary_expression "cVar42 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }" { (labeled_statement "LAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;" statement_identifier : (if_statement "if (pcVar39 == (char *)0x0) goto LAB_00109da6;" if (parenthesized_expression "(pcVar39 == (char *)0x0)" ( (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00109da6;" goto statement_identifier ;))) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" identifier = (call_expression "strlen((char *)plVar46)" identifier (argument_list "((char *)plVar46)" ( (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18)" identifier = (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 2 + sVar18)" identifier (argument_list "(sVar17 + 2 + sVar18)" ( (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" identifier = identifier) ;) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" identifier = identifier) ;) }) (else_clause "else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" else (compound_statement "{\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" { (labeled_statement "LAB_00109fa6:\n                  sVar17 = strlen(pcVar39);" statement_identifier : (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;)) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" identifier = (call_expression "strlen((char *)plVar46)" identifier (argument_list "((char *)plVar46)" ( (cast_expression "(char *)plVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18)" identifier = (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 2 + sVar18)" identifier (argument_list "(sVar17 + 2 + sVar18)" ( (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "plVar19 = (long *)((long)plVar20 + 1);" (assignment_expression "plVar19 = (long *)((long)plVar20 + 1)" identifier = (cast_expression "(long *)((long)plVar20 + 1)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar20 + 1)" ( (binary_expression "(long)plVar20 + 1" (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar20" * (cast_expression "(char *)plVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x1c)" * (cast_expression "(char *)(param_2[1] + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x1c)" ( (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" identifier = identifier) ;) }))) (expression_statement "plVar46 = plVar20;" (assignment_expression "plVar46 = plVar20" identifier = identifier) ;) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" identifier = identifier) ;) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" if (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" { (expression_statement "strcpy((char *)plVar19,DAT_0012ca08);" (call_expression "strcpy((char *)plVar19,DAT_0012ca08)" identifier (argument_list "((char *)plVar19,DAT_0012ca08)" ( (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" identifier = (call_expression "strlen(pcVar39)" identifier (argument_list "(pcVar39)" ( identifier )))) ;) (expression_statement "plVar19 = (long *)((long)plVar19 + sVar17);" (assignment_expression "plVar19 = (long *)((long)plVar19 + sVar17)" identifier = (cast_expression "(long *)((long)plVar19 + sVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar19 + sVar17)" ( (binary_expression "(long)plVar19 + sVar17" (cast_expression "(long)plVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) })) (expression_statement "strcpy((char *)plVar19,(char *)__src);" (call_expression "strcpy((char *)plVar19,(char *)__src)" identifier (argument_list "((char *)plVar19,(char *)__src)" ( (cast_expression "(char *)plVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)__src" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" identifier [ number_literal ]) = (cast_expression "(long)plVar46" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (labeled_statement "LAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;" statement_identifier : (if_statement "if (DAT_0012cb0c == 7) goto LAB_00109e38;" if (parenthesized_expression "(DAT_0012cb0c == 7)" ( (binary_expression "DAT_0012cb0c == 7" identifier == number_literal) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;))) (if_statement "if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" if (parenthesized_expression "((uVar28 & 0x20) == 0)" ( (binary_expression "(uVar28 & 0x20) == 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }" { (if_statement "if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" if (parenthesized_expression "(((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0))" ( (binary_expression "((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" (parenthesized_expression "((uVar28 & 0x100) == 0)" ( (binary_expression "(uVar28 & 0x100) == 0" (parenthesized_expression "(uVar28 & 0x100)" ( (binary_expression "uVar28 & 0x100" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" ( (binary_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20)" ( (binary_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20" (pointer_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" * (cast_expression "(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(plVar2[4] + 0x100) + 0x18)" ( (binary_expression "**(long **)(plVar2[4] + 0x100) + 0x18" (pointer_expression "**(long **)(plVar2[4] + 0x100)" * (pointer_expression "*(long **)(plVar2[4] + 0x100)" * (cast_expression "(long **)(plVar2[4] + 0x100)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar2[4] + 0x100)" ( (binary_expression "plVar2[4] + 0x100" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }" { (if_statement "if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49))" ( (binary_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" (parenthesized_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))))" ( (binary_expression "((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" (parenthesized_expression "((uint)local_b8 == 0)" ( (binary_expression "(uint)local_b8 == 0" (cast_expression "(uint)local_b8" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) && (parenthesized_expression "(((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" ( (parenthesized_expression "((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))" ( (binary_expression "(uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" ( (comma_expression "iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49" (assignment_expression "iVar7 = bfd_decode_symclass(plVar2)" identifier = (call_expression "bfd_decode_symclass(plVar2)" identifier (argument_list "(plVar2)" ( identifier )))) , (binary_expression "iVar7 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }" { (labeled_statement "LAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" statement_identifier : (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;)) (if_statement "if (iVar7 == 0) goto LAB_00109e20;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e20;" goto statement_identifier ;)) }) (else_clause "else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" else (if_statement "if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" ( (binary_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678))" ( (binary_expression "((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)" (parenthesized_expression "((uVar28 & 0x82) == 0)" ( (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" ( (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" * (cast_expression "(byte *)(plVar2[4] + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0x21)" ( (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }" { (if_statement "if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" if (parenthesized_expression "((uVar28 & 4) == 0)" ( (binary_expression "(uVar28 & 4) == 0" (parenthesized_expression "(uVar28 & 4)" ( (binary_expression "uVar28 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" { (if_statement "if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" if (parenthesized_expression "(((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0))" ( (binary_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)" (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0))" ( (binary_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2)" ( (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) != 2" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" * (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" ( (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" ( (comma_expression "lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0" (assignment_expression "lVar16 = *(long *)(plVar2[4] + 0xe0)" identifier = (pointer_expression "*(long *)(plVar2[4] + 0xe0)" * (cast_expression "(long *)(plVar2[4] + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[4] + 0xe0)" ( (binary_expression "plVar2[4] + 0xe0" (subscript_expression "plVar2[4]" identifier [ number_literal ]) + number_literal) ))))) , (binary_expression "lVar16 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(*(long *)(lVar16 + 0x40) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x40) == 0" (pointer_expression "*(long *)(lVar16 + 0x40)" * (cast_expression "(long *)(lVar16 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x40)" ( (binary_expression "lVar16 + 0x40" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" { (if_statement "if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;" if (parenthesized_expression "((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2))" ( (binary_expression "(DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)" (parenthesized_expression "(DAT_0012cb0c == 3)" ( (binary_expression "DAT_0012cb0c == 3" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cb08 == 2)" ( (binary_expression "DAT_0012cb08 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_00109e38;" goto statement_identifier ;)) (if_statement "if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" if (parenthesized_expression "(DAT_0012cb08 == 1)" ( (binary_expression "DAT_0012cb08 == 1" identifier == number_literal) )) (compound_statement "{\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" { (expression_statement "iVar7 = bfd_is_local_label(param_1,plVar2);" (assignment_expression "iVar7 = bfd_is_local_label(param_1,plVar2)" identifier = (call_expression "bfd_is_local_label(param_1,plVar2)" identifier (argument_list "(param_1,plVar2)" ( identifier , identifier )))) ;) (goto_statement "goto joined_r0x0010aafb;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;) })) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" identifier = identifier) ;) (if_statement "if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" if (parenthesized_expression "(1 < DAT_0012cb0c - 2U)" ( (binary_expression "1 < DAT_0012cb0c - 2U" number_literal < (binary_expression "DAT_0012cb0c - 2U" identifier - number_literal)) )) (compound_statement "{\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" { (labeled_statement "joined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;" statement_identifier : (if_statement "if (iVar7 == 0) goto LAB_0010a060;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;))) })) }) (else_clause "else if (DAT_0012cb0c != 3) goto LAB_0010a060;" else (if_statement "if (DAT_0012cb0c != 3) goto LAB_0010a060;" if (parenthesized_expression "(DAT_0012cb0c != 3)" ( (binary_expression "DAT_0012cb0c != 3" identifier != number_literal) )) (goto_statement "goto LAB_0010a060;" goto statement_identifier ;)))))) }) (else_clause "else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" else (compound_statement "{\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" { (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" { (expression_statement "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" identifier = (call_expression "dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" identifier (argument_list "(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" identifier (argument_list "(uVar12,plVar46)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" statement_identifier : (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca60)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca60)" identifier (argument_list "(plVar46,DAT_0012ca60)" ( identifier , identifier )))) ;)) (if_statement "if (iVar7 == 0) goto LAB_00109e61;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" statement_identifier : (if_statement "if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" if (parenthesized_expression "(((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0))" ( (binary_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" (parenthesized_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0))" ( (binary_expression "(DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)" (parenthesized_expression "(DAT_0012ca10 != 0)" ( (binary_expression "DAT_0012ca10 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar28 & 0x4000) != 0)" ( (binary_expression "(uVar28 & 0x4000) != 0" (parenthesized_expression "(uVar28 & 0x4000)" ( (binary_expression "uVar28 & 0x4000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca58)" identifier (argument_list "(plVar46,DAT_0012ca58)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00109e61;" goto statement_identifier ;))) }) (else_clause "else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" else (compound_statement "{\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" { (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" identifier (argument_list "(plVar46,DAT_0012ca68)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" { (expression_statement "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" identifier = (call_expression "dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" identifier (argument_list "(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" identifier (argument_list "(uVar12,plVar46)" ( identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);" statement_identifier : (expression_statement "iVar7 = FUN_001082f0(plVar2[4]);" (assignment_expression "iVar7 = FUN_001082f0(plVar2[4])" identifier = (call_expression "FUN_001082f0(plVar2[4])" identifier (argument_list "(plVar2[4])" ( (subscript_expression "plVar2[4]" identifier [ number_literal ]) )))) ;)) (if_statement "if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" { (if_statement "if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" if (parenthesized_expression "(((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )))" ( (binary_expression "((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" (parenthesized_expression "((uVar28 & 2) != 0)" ( (binary_expression "(uVar28 & 2) != 0" (parenthesized_expression "(uVar28 & 2)" ( (binary_expression "uVar28 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" ( (parenthesized_expression "(DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )" ( (binary_expression "DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" (binary_expression "DAT_0012ca14 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca38)" identifier (argument_list "(plVar46,DAT_0012ca38)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" if (parenthesized_expression "(lVar38 != 0x12c678)" ( (binary_expression "lVar38 != 0x12c678" identifier != number_literal) )) (compound_statement "{\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" { (if_statement "if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" if (parenthesized_expression "(((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))))" ( (binary_expression "((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" (parenthesized_expression "((uVar28 & 0x82) != 0)" ( (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" ( (binary_expression "uVar28 & 0x82" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" ( (parenthesized_expression "((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))" ( (binary_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))))" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca50)" identifier (argument_list "(plVar46,DAT_0012ca50)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" ( (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" identifier = (call_expression "htab_elements(DAT_0012ca40)" identifier (argument_list "(DAT_0012ca40)" ( identifier )))) , (binary_expression "lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (binary_expression "lVar38 != 0" identifier != number_literal) && (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca40)" identifier (argument_list "(plVar46,DAT_0012ca40)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) )))) )) || (parenthesized_expression "((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" ( (parenthesized_expression "(DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))" ( (binary_expression "DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" (binary_expression "DAT_0012ca70 != 0" identifier != number_literal) && (parenthesized_expression "((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" ( (parenthesized_expression "(((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))" ( (binary_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" (parenthesized_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0))" ( (binary_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)" (parenthesized_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5))" ( (comma_expression "lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (assignment_expression "lVar38 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) , (binary_expression "lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (binary_expression "lVar38 != 0" identifier != number_literal) && (parenthesized_expression "(*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" ( (binary_expression "*(int *)(*(long *)(lVar38 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar38 + 8) + 8)" * (cast_expression "(int *)(*(long *)(lVar38 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar38 + 8) + 8)" ( (binary_expression "*(long *)(lVar38 + 8) + 8" (pointer_expression "*(long *)(lVar38 + 8)" * (cast_expression "(long *)(lVar38 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 8)" ( (binary_expression "lVar38 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )))) )) && (parenthesized_expression "(*(long *)(lVar38 + 0xf8) != 0)" ( (binary_expression "*(long *)(lVar38 + 0xf8) != 0" (pointer_expression "*(long *)(lVar38 + 0xf8)" * (cast_expression "(long *)(lVar38 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0xf8)" ( (binary_expression "lVar38 + 0xf8" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2" (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1" (parenthesized_expression "(*(byte *)((long)plVar2 + 0x49) & 3)" ( (binary_expression "*(byte *)((long)plVar2 + 0x49) & 3" (pointer_expression "*(byte *)((long)plVar2 + 0x49)" * (cast_expression "(byte *)((long)plVar2 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar2 + 0x49)" ( (binary_expression "(long)plVar2 + 0x49" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d | 1" (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" if (parenthesized_expression "(((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0))" ( (binary_expression "((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" (parenthesized_expression "((uVar28 & 1) != 0)" ( (binary_expression "(uVar28 & 1) != 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48)" identifier = (call_expression "FUN_00108290(plVar46,DAT_0012ca48)" identifier (argument_list "(plVar46,DAT_0012ca48)" ( identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" { (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) = (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe | 2" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe" (pointer_expression "*(uint *)(plVar2 + 3)" * (cast_expression "(uint *)(plVar2 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2 + 3)" ( (binary_expression "plVar2 + 3" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "plVar15[local_100] = (long)plVar2;" (assignment_expression "plVar15[local_100] = (long)plVar2" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_110 = local_110 + 1;" (assignment_expression "local_110 = local_110 + 1" identifier = (binary_expression "local_110 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((size_t *)plVar34 != local_110)" ( (binary_expression "(size_t *)plVar34 != local_110" (cast_expression "(size_t *)plVar34" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (if_statement "if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" if (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" ( (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" ( (binary_expression "DAT_0012ca20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_0012ca18)" ( (binary_expression "0 < DAT_0012ca18" number_literal < identifier) ))) )) (compound_statement "{\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" { (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" identifier = number_literal) ;) (expression_statement "plVar34 = DAT_0012ca20;" (assignment_expression "plVar34 = DAT_0012ca20" identifier = identifier) ;) (do_statement "do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);" do (compound_statement "{\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            }" { (expression_statement "pcVar39 = (char *)plVar34[5];" (assignment_expression "pcVar39 = (char *)plVar34[5]" identifier = (cast_expression "(char *)plVar34[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar34[5]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" if (parenthesized_expression "(pcVar39 == (char *)0x0)" ( (binary_expression "pcVar39 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" { (expression_statement "lVar16 = FUN_00108200(plVar34,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar34,param_2)" identifier = (call_expression "FUN_00108200(plVar34,param_2)" identifier (argument_list "(plVar34,param_2)" ( identifier , identifier )))) ;) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" else (if_statement "if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" if (parenthesized_expression "(*pcVar39 != '\0')" ( (binary_expression "*pcVar39 != '\0'" (pointer_expression "*pcVar39" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" { (expression_statement "uVar12 = dcgettext(0,"\'before=%s\' not found",5);" (assignment_expression "uVar12 = dcgettext(0,"\'before=%s\' not found",5)" identifier = (call_expression "dcgettext(0,"\'before=%s\' not found",5)" identifier (argument_list "(0,"\'before=%s\' not found",5)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b5c0(uVar12,pcVar39);" (call_expression "FUN_0011b5c0(uVar12,pcVar39)" identifier (argument_list "(uVar12,pcVar39)" ( identifier , identifier ))) ;) })))) (expression_statement "lVar38 = lVar38 + 1;" (assignment_expression "lVar38 = lVar38 + 1" identifier = (binary_expression "lVar38 + 1" identifier + number_literal)) ;) (expression_statement "plVar34 = (long *)*plVar34;" (assignment_expression "plVar34 = (long *)*plVar34" identifier = (cast_expression "(long *)*plVar34" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar34" * identifier))) ;) }) while (parenthesized_expression "(lVar38 < DAT_0012ca18)" ( (binary_expression "lVar38 < DAT_0012ca18" identifier < identifier) )) ;) })) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" identifier = identifier) ;) (expression_statement "plVar15[local_100] = 0;" (assignment_expression "plVar15[local_100] = 0" (subscript_expression "plVar15[local_100]" identifier [ identifier ]) = number_literal) ;) (expression_statement "local_100 = local_100 & 0xffffffff;" (assignment_expression "local_100 = local_100 & 0xffffffff" identifier = (binary_expression "local_100 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" if (parenthesized_expression "((iVar7 != 0) && (local_b0 != 0))" ( (binary_expression "(iVar7 != 0) && (local_b0 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" { (expression_statement "iVar7 = *(int *)((undefined8 *)param_2[1] + 1);" (assignment_expression "iVar7 = *(int *)((undefined8 *)param_2[1] + 1)" identifier = (pointer_expression "*(int *)((undefined8 *)param_2[1] + 1)" * (cast_expression "(int *)((undefined8 *)param_2[1] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined8 *)param_2[1] + 1)" ( (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "((iVar7 != 2) && (iVar7 != 5))" ( (binary_expression "(iVar7 != 2) && (iVar7 != 5)" (parenthesized_expression "(iVar7 != 2)" ( (binary_expression "iVar7 != 2" identifier != number_literal) )) && (parenthesized_expression "(iVar7 != 5)" ( (binary_expression "iVar7 != 5" identifier != number_literal) ))) )) (compound_statement "{\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "uVar12 = *(undefined8 *)param_2[1];" (assignment_expression "uVar12 = *(undefined8 *)param_2[1]" identifier = (pointer_expression "*(undefined8 *)param_2[1]" * (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5)" identifier = (call_expression "dcgettext(0,"don\'t know how to write debugging information for %s",5)" identifier (argument_list "(0,"don\'t know how to write debugging information for %s",5)" ( number_literal , (string_literal ""don\'t know how to write debugging information for %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar13,uVar12)" identifier (argument_list "(0,param_2,0,uVar13,uVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);" (assignment_expression "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" identifier = (call_expression "FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" identifier (argument_list "(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) , identifier , (pointer_expression "&local_80" & identifier) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(param_2,".stab",0x2108)" identifier (argument_list "(param_2,".stab",0x2108)" ( identifier , (string_literal "".stab"" " string_content ") , number_literal )))) ;) (expression_statement "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108)" identifier = (call_expression "bfd_make_section_with_flags(param_2,".stabstr",0x2108)" identifier (argument_list "(param_2,".stabstr",0x2108)" ( identifier , (string_literal "".stabstr"" " string_content ") , number_literal )))) ;) (if_statement "if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" if (parenthesized_expression "((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0))" ( (binary_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" (parenthesized_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0))" ( (binary_expression "((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" (parenthesized_expression "((lVar38 == 0) || (lVar16 == 0))" ( (binary_expression "(lVar38 == 0) || (lVar16 == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0])" identifier = (call_expression "bfd_set_section_size(param_2,lVar38,local_78[0])" identifier (argument_list "(param_2,lVar38,local_78[0])" ( identifier , identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58)" identifier = (call_expression "bfd_set_section_size(param_2,lVar16,local_58)" identifier (argument_list "(param_2,lVar16,local_58)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" { (expression_statement "pcVar39 = "can\'t create debugging section";" (assignment_expression "pcVar39 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) (labeled_statement "LAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" identifier (argument_list "(0,param_2,0,uVar12)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(lVar38 + 0x70) = 2;" (assignment_expression "*(undefined4 *)(lVar38 + 0x70) = 2" (pointer_expression "*(undefined4 *)(lVar38 + 0x70)" * (cast_expression "(undefined4 *)(lVar38 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x70)" ( (binary_expression "lVar38 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar16 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(lVar16 + 0x70) = 0" (pointer_expression "*(undefined4 *)(lVar16 + 0x70)" * (cast_expression "(undefined4 *)(lVar16 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x70)" ( (binary_expression "lVar16 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" identifier (argument_list "(param_2,lVar38,local_88,0,local_78[0])" ( identifier , identifier , identifier , number_literal , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" if (parenthesized_expression "((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" identifier (argument_list "(param_2,lVar16,local_80,0,local_58)" ( identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" { (expression_statement "pcVar39 = "can\'t set debugging section contents";" (assignment_expression "pcVar39 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_0010a991;" goto statement_identifier ;) })) })) }) (else_clause "else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" else (compound_statement "{\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" { (if_statement "if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;" if (parenthesized_expression "(DAT_0012ca70 != 0 || DAT_0012cb08 != 0)" ( (binary_expression "DAT_0012ca70 != 0 || DAT_0012cb08 != 0" (binary_expression "DAT_0012ca70 != 0" identifier != number_literal) || (binary_expression "DAT_0012cb08 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00109b5f;" goto statement_identifier ;)) (expression_statement "lVar38 = htab_elements(DAT_0012ca68);" (assignment_expression "lVar38 = htab_elements(DAT_0012ca68)" identifier = (call_expression "htab_elements(DAT_0012ca68)" identifier (argument_list "(DAT_0012ca68)" ( identifier )))) ;) (if_statement "if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;" if (parenthesized_expression "((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))))" ( (binary_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" (parenthesized_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0))" ( (binary_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" (parenthesized_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))))" ( (binary_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" (parenthesized_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0))" ( (binary_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" (parenthesized_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0))" ( (binary_expression "(lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" (parenthesized_expression "(lVar38 != 0)" ( (binary_expression "lVar38 != 0" identifier != number_literal) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca58)" identifier = (call_expression "htab_elements(DAT_0012ca58)" identifier (argument_list "(DAT_0012ca58)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca50)" identifier = (call_expression "htab_elements(DAT_0012ca50)" identifier (argument_list "(DAT_0012ca50)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" ( (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca48)" identifier = (call_expression "htab_elements(DAT_0012ca48)" identifier (argument_list "(DAT_0012ca48)" ( identifier )))) , (binary_expression "lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (binary_expression "lVar38 != 0" identifier != number_literal) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" identifier = (call_expression "htab_elements(DAT_0012ca40)" identifier (argument_list "(DAT_0012ca40)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca38)" identifier = (call_expression "htab_elements(DAT_0012ca38)" identifier (argument_list "(DAT_0012ca38)" ( identifier )))) , (binary_expression "lVar38 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" ( (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))" ( (binary_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))" ( (comma_expression "lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca30)" identifier = (call_expression "htab_elements(DAT_0012ca30)" identifier (argument_list "(DAT_0012ca30)" ( identifier )))) , (binary_expression "lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (binary_expression "lVar38 != 0" identifier != number_literal) || (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" ( (binary_expression "DAT_0012ca08 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) || (parenthesized_expression "((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" ( (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))" ( (binary_expression "DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" ( (binary_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0" (parenthesized_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0)" ( (binary_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0" (parenthesized_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0)" ( (binary_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0" (parenthesized_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0)" ( (binary_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0" (parenthesized_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0)" ( (binary_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0" (parenthesized_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0)" ( (binary_expression "DAT_0012cafc != 0 || DAT_0012caf8 != 0" (binary_expression "DAT_0012cafc != 0" identifier != number_literal) || (binary_expression "DAT_0012caf8 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca88 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca7c != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca78 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca14 != 0" identifier != number_literal)) )) || (binary_expression "DAT_0012ca18 != 0" identifier != number_literal)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00109b5a;" goto statement_identifier ;)) }))) (expression_statement "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);" (call_expression "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff)" identifier (argument_list "(param_2,DAT_0012cb38,local_100 & 0xffffffff)" ( identifier , identifier , (binary_expression "local_100 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00108b90,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108b90,param_2)" identifier (argument_list "(param_1,FUN_00108b90,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00108850,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108850,param_2)" identifier (argument_list "(param_1,FUN_00108850,param_2)" ( identifier , identifier , identifier ))) ;) (for_statement "for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" for ( (assignment_expression "puVar33 = DAT_0012caa8" identifier = identifier) ; (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" identifier = identifier) , (binary_expression "puVar33 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar33 = (undefined8 *)*puVar33" identifier = (cast_expression "(undefined8 *)*puVar33" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ) (compound_statement "{\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" { (expression_statement "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" identifier = (call_expression "bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" identifier (argument_list "(param_2,puVar33[5],puVar33[4],0,puVar33[3])" ( identifier , (subscript_expression "puVar33[5]" identifier [ number_literal ]) , (subscript_expression "puVar33[4]" identifier [ number_literal ]) , number_literal , (subscript_expression "puVar33[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" { (labeled_statement "LAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);" statement_identifier : (expression_statement "FUN_0011c0d0(0,param_2,puVar33[5],0);" (call_expression "FUN_0011c0d0(0,param_2,puVar33[5],0)" identifier (argument_list "(0,param_2,puVar33[5],0)" ( number_literal , identifier , (subscript_expression "puVar33[5]" identifier [ number_literal ]) , number_literal ))) ;)) (return_statement "return iVar7;" return identifier ;) })) })) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" for ( ; (binary_expression "puVar44 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar44 = (undefined8 *)*puVar44" identifier = (cast_expression "(undefined8 *)*puVar44" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar44" * identifier))) ) (compound_statement "{\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" { (expression_statement "uVar12 = *(undefined8 *)(puVar44[5] + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(puVar44[5] + 0x68)" identifier = (pointer_expression "*(undefined8 *)(puVar44[5] + 0x68)" * (cast_expression "(undefined8 *)(puVar44[5] + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar44[5] + 0x68)" ( (binary_expression "puVar44[5] + 0x68" (subscript_expression "puVar44[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" identifier = (call_expression "bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" identifier (argument_list "(param_2,uVar12,puVar44[4],0,puVar44[3])" ( identifier , identifier , (subscript_expression "puVar44[4]" identifier [ number_literal ]) , number_literal , (subscript_expression "puVar44[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" { (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" identifier (argument_list "(0,param_2,uVar12,0)" ( number_literal , identifier , identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" if (parenthesized_expression "(DAT_0012cb20 != 0)" ( (binary_expression "DAT_0012cb20 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" { (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes")" identifier = (call_expression "bfd_get_section_by_name(param_2,".gnu.build.attributes")" identifier (argument_list "(param_2,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") )))) ;) (if_statement "if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" if (parenthesized_expression "(((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))))" ( (binary_expression "((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" (parenthesized_expression "((lVar38 == 0) || (DAT_0012cb20 == 0))" ( (binary_expression "(lVar38 == 0) || (DAT_0012cb20 == 0)" (parenthesized_expression "(lVar38 == 0)" ( (binary_expression "lVar38 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0012cb20 == 0)" ( (binary_expression "DAT_0012cb20 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" ( (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))" ( (binary_expression "*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) || (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier = (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" identifier (argument_list "(lVar38,lVar38 + 0xe0)" ( identifier , (binary_expression "lVar38 + 0xe0" identifier + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }" { (if_statement "if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" if (parenthesized_expression "(DAT_0012c508 == 0)" ( (binary_expression "DAT_0012c508 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" { (expression_statement "uVar12 = dcgettext(0,"could not find any mergeable note sections",5);" (assignment_expression "uVar12 = dcgettext(0,"could not find any mergeable note sections",5)" identifier = (call_expression "dcgettext(0,"could not find any mergeable note sections",5)" identifier (argument_list "(0,"could not find any mergeable note sections",5)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" else (compound_statement "{\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" { (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" identifier (argument_list "(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" { (expression_statement "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);" (assignment_expression "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5)" identifier = (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" identifier (argument_list "(0,param_2,lVar38,uVar12)" ( number_literal , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" identifier (argument_list "(DAT_0012cb18)" ( identifier ))) ;) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" identifier = number_literal) ;) })) (if_statement "if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" if (parenthesized_expression "((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0))" ( (binary_expression "(DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012ca90 != 0)" ( (binary_expression "DAT_0012ca90 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" ( (comma_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" identifier (argument_list "(param_2,local_a8)" ( identifier , identifier )))) , (comma_expression "lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "lVar38 = DAT_0012ca90" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" { (expression_statement "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier = (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" identifier (argument_list "(0,param_2,0,uVar12,lVar38)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" if (parenthesized_expression "(DAT_0012cad0 != 0 || DAT_0012cac8 != 0)" ( (binary_expression "DAT_0012cad0 != 0 || DAT_0012cac8 != 0" (binary_expression "DAT_0012cad0 != 0" identifier != number_literal) || (binary_expression "DAT_0012cac8 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" { (expression_statement "uVar21 = 0x2000;" (assignment_expression "uVar21 = 0x2000" identifier = number_literal) ;) (if_statement "if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }" if (parenthesized_expression "(local_a0 < 0x2001)" ( (binary_expression "local_a0 < 0x2001" identifier < number_literal) )) (compound_statement "{\n            uVar21 = local_a0;\n          }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) })) (expression_statement "plVar15 = (long *)xmalloc(uVar21);" (assignment_expression "plVar15 = (long *)xmalloc(uVar21)" identifier = (cast_expression "(long *)xmalloc(uVar21)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar21)" identifier (argument_list "(uVar21)" ( identifier ))))) ;) (expression_statement "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;" (assignment_expression "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101" identifier = (binary_expression "(ulong)DAT_0012cacc * 0x101010101010101" (cast_expression "(ulong)DAT_0012cacc" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "uVar28 = (uint)uVar21;" (assignment_expression "uVar28 = (uint)uVar21" identifier = (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" if (parenthesized_expression "(uVar28 < 8)" ( (binary_expression "uVar28 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }" { (if_statement "if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" if (parenthesized_expression "((uVar21 & 4) == 0)" ( (binary_expression "(uVar21 & 4) == 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }" { (if_statement "if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" if (parenthesized_expression "((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0))" ( (binary_expression "(uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" ( (comma_expression "*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0" (assignment_expression "*(char *)plVar15 = (char)lVar38" (pointer_expression "*(char *)plVar15" * (cast_expression "(char *)plVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)lVar38" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" { (expression_statement "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;" (assignment_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38" (pointer_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" * (cast_expression "(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 2)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 2)" ( (binary_expression "(uVar21 & 0xffffffff) - 2" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(short)lVar38" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" else (compound_statement "{\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" { (expression_statement "*(int *)plVar15 = (int)lVar38;" (assignment_expression "*(int *)plVar15 = (int)lVar38" (pointer_expression "*(int *)plVar15" * (cast_expression "(int *)plVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)lVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;" (assignment_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38" (pointer_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" * (cast_expression "(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 4)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 4)" ( (binary_expression "(uVar21 & 0xffffffff) - 4" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = (cast_expression "(int)lVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" else (compound_statement "{\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" { (expression_statement "*plVar15 = lVar38;" (assignment_expression "*plVar15 = lVar38" (pointer_expression "*plVar15" * identifier) = identifier) ;) (expression_statement "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;" (assignment_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38" (pointer_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" * (cast_expression "(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" ( (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 8)" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((uVar21 & 0xffffffff) - 8)" ( (binary_expression "(uVar21 & 0xffffffff) - 8" (parenthesized_expression "(uVar21 & 0xffffffff)" ( (binary_expression "uVar21 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) )))) = identifier) ;) (expression_statement "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);" (assignment_expression "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" identifier = (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar15 + 1)" ( (binary_expression "plVar15 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" for ( (assignment_expression "uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" identifier = (call_expression "(ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" ( (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3" (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28" (parenthesized_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8))" ( (binary_expression "(int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)plVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar15 + 1)" ( (binary_expression "plVar15 + 1" identifier + number_literal) ))) & number_literal) ))))) )) + identifier) >> number_literal) )))) ; (binary_expression "uVar21 != 0" identifier != number_literal) ; (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ) (compound_statement "{\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" { (expression_statement "*plVar34 = lVar38;" (assignment_expression "*plVar34 = lVar38" (pointer_expression "*plVar34" * identifier) = identifier) ;) (expression_statement "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;" (assignment_expression "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1" identifier = (binary_expression "plVar34 + (ulong)bVar51 * -2 + 1" (binary_expression "plVar34 + (ulong)bVar51 * -2" identifier + (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) (if_statement "if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" if (parenthesized_expression "(*(int *)(param_2 + 0x14) != 0)" ( (binary_expression "*(int *)(param_2 + 0x14) != 0" (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" { (expression_statement "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;" (assignment_expression "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" identifier = (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1)" identifier + (call_expression "(ulong)(*(int *)(param_2 + 0x14) - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)(param_2 + 0x14) - 1)" ( (binary_expression "*(int *)(param_2 + 0x14) - 1" (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) )))) - number_literal) )))) + number_literal)) ;) (do_statement "do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);" do (compound_statement "{\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            }" { (expression_statement "uVar21 = *local_90;" (assignment_expression "uVar21 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (if_statement "if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" { (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "lVar16 = *(long *)(lVar38 + 0x38) - uVar21;" (assignment_expression "lVar16 = *(long *)(lVar38 + 0x38) - uVar21" identifier = (binary_expression "*(long *)(lVar38 + 0x38) - uVar21" (pointer_expression "*(long *)(lVar38 + 0x38)" * (cast_expression "(long *)(lVar38 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar38 + 0x38)" ( (binary_expression "lVar38 + 0x38" identifier + number_literal) )))) - identifier)) ;) (while_statement "while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" { (expression_statement "uVar29 = 0x2000;" (assignment_expression "uVar29 = 0x2000" identifier = number_literal) ;) (if_statement "if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }" if (parenthesized_expression "(uVar21 < 0x2001)" ( (binary_expression "uVar21 < 0x2001" identifier < number_literal) )) (compound_statement "{\n                    uVar29 = uVar21;\n                  }" { (expression_statement "uVar29 = uVar21;" (assignment_expression "uVar29 = uVar21" identifier = identifier) ;) })) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" identifier = (call_expression "bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" identifier (argument_list "(param_2,lVar38,plVar15,lVar16,uVar29)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" { (expression_statement "FUN_0011c0d0(0,param_2,*local_98,0);" (call_expression "FUN_0011c0d0(0,param_2,*local_98,0)" identifier (argument_list "(0,param_2,*local_98,0)" ( number_literal , identifier , (pointer_expression "*local_98" * identifier) , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar16 = lVar16 + uVar29;" (assignment_expression "lVar16 = lVar16 + uVar29" identifier = (binary_expression "lVar16 + uVar29" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 - uVar29;" (assignment_expression "uVar21 = uVar21 - uVar29" identifier = (binary_expression "uVar21 - uVar29" identifier - identifier)) ;) (if_statement "if (uVar21 == 0) break;" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar32 != local_90)" ( (binary_expression "puVar32 != local_90" identifier != identifier) )) ;) })) })) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0x138))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x138))" ( (pointer_expression "**(code **)(param_2[1] + 0x138)" * (pointer_expression "*(code **)(param_2[1] + 0x138)" * (cast_expression "(code **)(param_2[1] + 0x138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0x138)" ( (binary_expression "param_2[1] + 0x138" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" { (if_statement "if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" if (parenthesized_expression "((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0))" ( (binary_expression "(DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" (parenthesized_expression "(DAT_0012cab8 != 0)" ( (binary_expression "DAT_0012cab8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" ( (comma_expression "iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "iVar7 = bfd_alt_mach_code(param_2)" identifier = (call_expression "bfd_alt_mach_code(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (comma_expression "lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "lVar38 = DAT_0012cab8" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" { (expression_statement "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);" (assignment_expression "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5)" identifier = (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5)" identifier (argument_list "(0,"this target does not support %lu alternative machine codes",5)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12,lVar38);" (call_expression "FUN_0011b660(uVar12,lVar38)" identifier (argument_list "(uVar12,lVar38)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" if (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5)" ( (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" * (cast_expression "(int *)(param_2[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" { (expression_statement "uVar12 = dcgettext(0,"ignoring the alternative value",5);" (assignment_expression "uVar12 = dcgettext(0,"ignoring the alternative value",5)" identifier = (call_expression "dcgettext(0,"ignoring the alternative value",5)" identifier (argument_list "(0,"ignoring the alternative value",5)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);" (assignment_expression "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5)" identifier = (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5)" identifier (argument_list "(0,"treating that number as an absolute e_machine value instead",5)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;" (assignment_expression "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8" (pointer_expression "*(short *)(param_2[0x1f] + 0x3a)" * (cast_expression "(short *)(param_2[0x1f] + 0x3a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x1f] + 0x3a)" ( (binary_expression "param_2[0x1f] + 0x3a" (subscript_expression "param_2[0x1f]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(short)DAT_0012cab8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar12 = dcgettext(0,"error copying private BFD data",5);" (assignment_expression "uVar12 = dcgettext(0,"error copying private BFD data",5)" identifier = (call_expression "dcgettext(0,"error copying private BFD data",5)" identifier (argument_list "(0,"error copying private BFD data",5)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00109580;" goto statement_identifier ;) }))) (expression_statement "uVar28 = DAT_0012ca84;" (assignment_expression "uVar28 = DAT_0012ca84" identifier = identifier) ;) (if_statement "if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" if (parenthesized_expression "((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0))" ( (binary_expression "(DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" (parenthesized_expression "(DAT_0012ca84 == 1)" ( (binary_expression "DAT_0012ca84 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" ( (comma_expression "uVar28 = DAT_0012ca84 & 1, uVar28 == 0" (assignment_expression "uVar28 = DAT_0012ca84 & 1" identifier = (binary_expression "DAT_0012ca84 & 1" identifier & number_literal)) , (binary_expression "uVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }" { (if_statement "if (DAT_0012ca80 == 0) goto LAB_00109056;" if (parenthesized_expression "(DAT_0012ca80 == 0)" ( (binary_expression "DAT_0012ca80 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00109056;" goto statement_identifier ;)) (expression_statement "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" identifier = (call_expression "FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" identifier (argument_list "(param_1,DAT_0012ca80,uVar28,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'"" identifier = (string_literal ""--elf-stt-common=[yes|no] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" else (compound_statement "{\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" { (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" identifier = (call_expression "FUN_0011bfe0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" identifier = (string_literal ""--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" " string_content escape_sequence ")) ;) }))) })) (labeled_statement "LAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);" statement_identifier : (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" identifier = (call_expression "dcgettext(0,pcVar39,5)" identifier (argument_list "(0,pcVar39,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" identifier (argument_list "(uVar13,uVar12)" ( identifier , identifier ))) ;) }))) (return_statement "return iVar7;" return identifier ;) (labeled_statement "LAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" statement_identifier : (if_statement "if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" if (parenthesized_expression "((undefined1 *)((long)pvVar26 + sVar17) <= puVar30)" ( (binary_expression "(undefined1 *)((long)pvVar26 + sVar17) <= puVar30" (cast_expression "(undefined1 *)((long)pvVar26 + sVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar26 + sVar17)" ( (binary_expression "(long)pvVar26 + sVar17" (cast_expression "(long)pvVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;))) (expression_statement "*puVar30 = (char)uVar29;" (assignment_expression "*puVar30 = (char)uVar29" (pointer_expression "*puVar30" * identifier) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar29 == 0) goto LAB_0010b3c1;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010b3c1;" goto statement_identifier ;)) (expression_statement "uVar29 = uVar29 >> 8;" (assignment_expression "uVar29 = uVar29 >> 8" identifier = (binary_expression "uVar29 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0010b3bc;" goto statement_identifier ;) (labeled_statement "LAB_0010b3c1:\n  psVar6[0xb] = 0;" statement_identifier : (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" identifier = true) ;) (goto_statement "goto LAB_0010b255;" goto statement_identifier ;) }))) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) && (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (unary_expression ~ IDENT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) & (parenthesized_expression ( (binary_expression IDENT | (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , LIT ))) ;)) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) (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 )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (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 )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_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)) ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (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 != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (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 != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT | LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT / LIT) , LIT , (binary_expression IDENT % LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) )) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( )))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( )))) ;) }))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )) + (pointer_expression * IDENT)) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (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 (subscript_expression IDENT [ LIT ]) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT <= IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT != LIT)) )))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) ))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))))) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) - IDENT) ))) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + IDENT) )))) << (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (char_literal ' escape_sequence ')) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) ))) [ IDENT ]) << (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (char_literal ' escape_sequence ')) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) })) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( LIT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) * (char_literal ' escape_sequence ')) + (char_literal ' escape_sequence '))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) }))) }))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) })) (labeled_statement statement_identifier : (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (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) )) != LIT) )) (compound_statement { (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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (ERROR }) (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) + LIT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT - LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) * LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (string_literal " "))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == IDENT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (break_statement break ;) })) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) )))) )) )))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) - LIT) < LIT) ))) )) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (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 IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) || (binary_expression IDENT != LIT)) )) || (binary_expression IDENT != LIT)) )) || (binary_expression IDENT != LIT)) )) || (binary_expression IDENT != LIT)) )) || (binary_expression IDENT != LIT)) ))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;)) (return_statement return IDENT ;) })) })) (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT ))) ;) (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT == LIT)) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) )) + IDENT) >> LIT) )))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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 = (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) )))) + LIT)) ;) (do_statement do (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression * IDENT) , LIT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) <= IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) }))) })))
(function_definition "int FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)\n\n{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" (primitive_type "int") (function_declarator "FUN_00108fc0(long param_1,undefined8 *param_2,long param_3)" (identifier "FUN_00108fc0") (parameter_list "(long param_1,undefined8 *param_2,long param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  void *__dest;\n  undefined8 uVar1;\n  long *plVar2;\n  size_t sVar3;\n  code *pcVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  void *__dest_00;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int iVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  FILE *__s;\n  undefined8 uVar14;\n  long *plVar15;\n  long lVar16;\n  size_t sVar17;\n  size_t sVar18;\n  long *plVar19;\n  long *plVar20;\n  ulong uVar21;\n  int *piVar22;\n  void *pvVar23;\n  long lVar24;\n  size_t sVar25;\n  void *pvVar26;\n  ulong uVar27;\n  uint uVar28;\n  ulong uVar29;\n  undefined1 *puVar30;\n  size_t *psVar31;\n  ulong *puVar32;\n  undefined8 *puVar33;\n  long *plVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  size_t *psVar37;\n  long lVar38;\n  char *pcVar39;\n  byte *pbVar40;\n  ulong uVar41;\n  char cVar42;\n  byte *pbVar43;\n  undefined8 *puVar44;\n  ulong uVar45;\n  long *__src;\n  long *plVar46;\n  size_t *psVar47;\n  void *pvVar48;\n  bool bVar49;\n  bool bVar50;\n  byte bVar51;\n  size_t *local_110;\n  ulong local_100;\n  void *local_f0;\n  ulong local_e8;\n  size_t local_c8;\n  size_t local_c0;\n  size_t local_b8;\n  size_t local_b0;\n  long local_a8;\n  ulong local_a0;\n  long *local_98;\n  ulong *local_90;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78 [4];\n  long *local_58;\n  undefined8 local_50;\n  \n  bVar51 = 0;\n  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);\n  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }\n  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n  uVar12 = 0;\n  if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" ({ "{") (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "size_t *psVar6;" (primitive_type "size_t") (pointer_declarator "*psVar6" (* "*") (identifier "psVar6")) (; ";")) (declaration "void *__dest_00;" (primitive_type "void") (pointer_declarator "*__dest_00" (* "*") (identifier "__dest_00")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "FILE *__s;" (type_identifier "FILE") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "long *plVar15;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar15" (* "*") (identifier "plVar15")) (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "size_t sVar17;" (primitive_type "size_t") (identifier "sVar17") (; ";")) (declaration "size_t sVar18;" (primitive_type "size_t") (identifier "sVar18") (; ";")) (declaration "long *plVar19;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar19" (* "*") (identifier "plVar19")) (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "void *pvVar23;" (primitive_type "void") (pointer_declarator "*pvVar23" (* "*") (identifier "pvVar23")) (; ";")) (declaration "long lVar24;" (sized_type_specifier "long" (long "long")) (identifier "lVar24") (; ";")) (declaration "size_t sVar25;" (primitive_type "size_t") (identifier "sVar25") (; ";")) (declaration "void *pvVar26;" (primitive_type "void") (pointer_declarator "*pvVar26" (* "*") (identifier "pvVar26")) (; ";")) (declaration "ulong uVar27;" (type_identifier "ulong") (identifier "uVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "ulong uVar29;" (type_identifier "ulong") (identifier "uVar29") (; ";")) (declaration "undefined1 *puVar30;" (type_identifier "undefined1") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "size_t *psVar31;" (primitive_type "size_t") (pointer_declarator "*psVar31" (* "*") (identifier "psVar31")) (; ";")) (declaration "ulong *puVar32;" (type_identifier "ulong") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "undefined8 *puVar33;" (type_identifier "undefined8") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "long *plVar34;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar34" (* "*") (identifier "plVar34")) (; ";")) (declaration "size_t *psVar35;" (primitive_type "size_t") (pointer_declarator "*psVar35" (* "*") (identifier "psVar35")) (; ";")) (declaration "size_t *psVar36;" (primitive_type "size_t") (pointer_declarator "*psVar36" (* "*") (identifier "psVar36")) (; ";")) (declaration "size_t *psVar37;" (primitive_type "size_t") (pointer_declarator "*psVar37" (* "*") (identifier "psVar37")) (; ";")) (declaration "long lVar38;" (sized_type_specifier "long" (long "long")) (identifier "lVar38") (; ";")) (declaration "char *pcVar39;" (primitive_type "char") (pointer_declarator "*pcVar39" (* "*") (identifier "pcVar39")) (; ";")) (declaration "byte *pbVar40;" (type_identifier "byte") (pointer_declarator "*pbVar40" (* "*") (identifier "pbVar40")) (; ";")) (declaration "ulong uVar41;" (type_identifier "ulong") (identifier "uVar41") (; ";")) (declaration "char cVar42;" (primitive_type "char") (identifier "cVar42") (; ";")) (declaration "byte *pbVar43;" (type_identifier "byte") (pointer_declarator "*pbVar43" (* "*") (identifier "pbVar43")) (; ";")) (declaration "undefined8 *puVar44;" (type_identifier "undefined8") (pointer_declarator "*puVar44" (* "*") (identifier "puVar44")) (; ";")) (declaration "ulong uVar45;" (type_identifier "ulong") (identifier "uVar45") (; ";")) (declaration "long *__src;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "long *plVar46;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar46" (* "*") (identifier "plVar46")) (; ";")) (declaration "size_t *psVar47;" (primitive_type "size_t") (pointer_declarator "*psVar47" (* "*") (identifier "psVar47")) (; ";")) (declaration "void *pvVar48;" (primitive_type "void") (pointer_declarator "*pvVar48" (* "*") (identifier "pvVar48")) (; ";")) (declaration "bool bVar49;" (primitive_type "bool") (identifier "bVar49") (; ";")) (declaration "bool bVar50;" (primitive_type "bool") (identifier "bVar50") (; ";")) (declaration "byte bVar51;" (type_identifier "byte") (identifier "bVar51") (; ";")) (declaration "size_t *local_110;" (primitive_type "size_t") (pointer_declarator "*local_110" (* "*") (identifier "local_110")) (; ";")) (declaration "ulong local_100;" (type_identifier "ulong") (identifier "local_100") (; ";")) (declaration "void *local_f0;" (primitive_type "void") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "ulong local_e8;" (type_identifier "ulong") (identifier "local_e8") (; ";")) (declaration "size_t local_c8;" (primitive_type "size_t") (identifier "local_c8") (; ";")) (declaration "size_t local_c0;" (primitive_type "size_t") (identifier "local_c0") (; ";")) (declaration "size_t local_b8;" (primitive_type "size_t") (identifier "local_b8") (; ";")) (declaration "size_t local_b0;" (primitive_type "size_t") (identifier "local_b0") (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "ulong local_a0;" (type_identifier "ulong") (identifier "local_a0") (; ";")) (declaration "long *local_98;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "ulong *local_90;" (type_identifier "ulong") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "undefined8 local_78 [4];" (type_identifier "undefined8") (array_declarator "local_78 [4]" (identifier "local_78") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "long *local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (expression_statement "bVar51 = 0;" (assignment_expression "bVar51 = 0" (identifier "bVar51") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 0xc)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 8) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0xc)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0xc" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" (if "if") (parenthesized_expression "((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2))" (( "(") (binary_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)" (parenthesized_expression "(iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2)" (( "(") (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2" (binary_expression "iVar7 != *(int *)(param_2[1] + 0xc)" (identifier "iVar7") (!= "!=") (pointer_expression "*(int *)(param_2[1] + 0xc)" (* "*") (cast_expression "(int *)(param_2[1] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0xc)" (( "(") (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) (&& "&&") (binary_expression "iVar7 != 2" (identifier "iVar7") (!= "!=") (number_literal "2"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2[1] + 0xc) != 2)" (( "(") (binary_expression "*(int *)(param_2[1] + 0xc) != 2" (pointer_expression "*(int *)(param_2[1] + 0xc)" (* "*") (cast_expression "(int *)(param_2[1] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0xc)" (( "(") (binary_expression "param_2[1] + 0xc" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0011b660(uVar12);\n    return 0;\n  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Unable to change endianness of input file(s)",5)" (identifier "dcgettext") (argument_list "(0,"Unable to change endianness of input file(s)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unable to change endianness of input file(s)"" (" """) (string_content "Unable to change endianness of input file(s)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" (identifier "iVar7") (= "=") (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" (identifier "bfd_set_format") (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" (( "(") (identifier "param_2") (, ",") (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" (* "*") (cast_expression "(byte *)(param_1 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "7")) () ")")))) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 == 0) {\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }\n  else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);\n  }" ({ "{") (labeled_statement "LAB_00109580:\n    FUN_0011c0d0(0,param_2,0,uVar12);" (statement_identifier "LAB_00109580") (: ":") (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,0,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar12") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" (else "else") (compound_statement "{\n    if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }\n  return iVar7;\nLAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;\n  *puVar30 = (char)uVar29;\n  if (uVar29 == 0) goto LAB_0010b3c1;\n  uVar29 = uVar29 >> 8;\n  puVar30 = puVar30 + 1;\n  goto LAB_0010b3bc;\nLAB_0010b3c1:\n  psVar6[0xb] = 0;\n  bVar49 = true;\n  goto LAB_0010b255;\n}" ({ "{") (if_statement "if (*(long *)(param_1 + 0x90) == 0) {\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }\n    else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x90) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x90) == 0" (pointer_expression "*(long *)(param_1 + 0x90)" (* "*") (cast_expression "(long *)(param_1 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar12 = FUN_0011bfe0(param_1);\n      pcVar39 = "error: the input file \'%s\' has no sections";\n    }" ({ "{") (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" (identifier "uVar12") (= "=") (call_expression "FUN_0011bfe0(param_1)" (identifier "FUN_0011bfe0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar39 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar39 = "error: the input file \'%s\' has no sections"" (identifier "pcVar39") (= "=") (string_literal ""error: the input file \'%s\' has no sections"" (" """) (string_content "error: the input file ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " has no sections") (" """))) (; ";")) (} "}")) (else_clause "else {\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" (else "else") (compound_statement "{\n      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }\nLAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);\n    iVar7 = 0;\n    FUN_0011b660(uVar13,uVar12);\n  }" ({ "{") (if_statement "if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5)" (( "(") (binary_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5" (pointer_expression "*(int *)(*(undefined8 **)(param_1 + 8) + 1)" (* "*") (cast_expression "(int *)(*(undefined8 **)(param_1 + 8) + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" (( "(") (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" (* "*") (cast_expression "(undefined8 **)(param_1 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\nLAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }\n        lVar38 = 0;\n        if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }\n        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }\n        uVar8 = bfd_get_arch(param_1);\n        uVar9 = bfd_get_mach(param_1);\n        if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);\n        if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }\n        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);\n        if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }\n        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);\n        bVar49 = uVar28 < 2;\n        bVar50 = uVar28 == 2;\n        if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }\n        plVar15 = DAT_0012cb40;\n        if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }\n        if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }\n        DAT_0012cb40 = (long *)0x0;\n        DAT_0012cb38 = (long *)0x0;\n        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);\n        if (lVar38 < 0) goto LAB_001091b0;\n        DAT_0012cb38 = (long *)xmalloc(lVar38);\n        DAT_0012cb40 = DAT_0012cb38;\n        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);\n        if ((long)local_100 < 0) goto LAB_001091b0;\n        if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }\n        bfd_map_over_sections(param_1,FUN_001083b0,param_2);\n        puVar33 = DAT_0012caa8;\n        if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }\n        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }\nLAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }\n      uVar28 = DAT_0012ca84;\n      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }\n    }" ({ "{") (labeled_statement "LAB_00109056:\n        if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" (statement_identifier "LAB_00109056") (: ":") (if_statement "if (DAT_0012cb2c != 0) {\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" (if "if") (parenthesized_expression "(DAT_0012cb2c != 0)" (( "(") (binary_expression "DAT_0012cb2c != 0" (identifier "DAT_0012cb2c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = *param_2;\n          uVar13 = **(undefined8 **)(param_1 + 8);\n          uVar1 = *(undefined8 *)param_2[1];\n          uVar14 = FUN_0011bfe0(param_1);\n          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);\n        }" ({ "{") (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" (identifier "uVar12") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar13 = **(undefined8 **)(param_1 + 8);" (assignment_expression "uVar13 = **(undefined8 **)(param_1 + 8)" (identifier "uVar13") (= "=") (pointer_expression "**(undefined8 **)(param_1 + 8)" (* "*") (pointer_expression "*(undefined8 **)(param_1 + 8)" (* "*") (cast_expression "(undefined8 **)(param_1 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar1 = *(undefined8 *)param_2[1];" (assignment_expression "uVar1 = *(undefined8 *)param_2[1]" (identifier "uVar1") (= "=") (pointer_expression "*(undefined8 *)param_2[1]" (* "*") (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "uVar14 = FUN_0011bfe0(param_1);" (assignment_expression "uVar14 = FUN_0011bfe0(param_1)" (identifier "uVar14") (= "=") (call_expression "FUN_0011bfe0(param_1)" (identifier "FUN_0011bfe0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" (identifier "pcVar39") (= "=") (cast_expression "(char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" (identifier "dcgettext") (argument_list "(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""copy from `%s\' [%s] to `%s\' [%s]\n"" (" """) (string_content "copy from `%s") (escape_sequence "\'") (string_content " [%s] to `%s") (escape_sequence "\'") (string_content " [%s]") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar39,uVar14,uVar13,uVar12,uVar1);" (call_expression "printf(pcVar39,uVar14,uVar13,uVar12,uVar1)" (identifier "printf") (argument_list "(pcVar39,uVar14,uVar13,uVar12,uVar1)" (( "(") (identifier "pcVar39") (, ",") (identifier "uVar14") (, ",") (identifier "uVar13") (, ",") (identifier "uVar12") (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}")))) (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" (identifier "lVar38") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0012c9f4 == 0) {\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" (if "if") (parenthesized_expression "(DAT_0012c9f4 == 0)" (( "(") (binary_expression "DAT_0012c9f4 == 0" (identifier "DAT_0012c9f4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar38 = DAT_0012cae0;\n          if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }\n          lVar38 = lVar38 + _DAT_0012caf0;\n        }" ({ "{") (expression_statement "lVar38 = DAT_0012cae0;" (assignment_expression "lVar38 = DAT_0012cae0" (identifier "lVar38") (= "=") (identifier "DAT_0012cae0")) (; ";")) (if_statement "if (DAT_0012cae8 == 0) {\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" (if "if") (parenthesized_expression "(DAT_0012cae8 == 0)" (( "(") (binary_expression "DAT_0012cae8 == 0" (identifier "DAT_0012cae8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            lVar38 = *(long *)(param_1 + 0xa8);\n          }" ({ "{") (expression_statement "lVar38 = *(long *)(param_1 + 0xa8);" (assignment_expression "lVar38 = *(long *)(param_1 + 0xa8)" (identifier "lVar38") (= "=") (pointer_expression "*(long *)(param_1 + 0xa8)" (* "*") (cast_expression "(long *)(param_1 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa8)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "lVar38 = lVar38 + _DAT_0012caf0;" (assignment_expression "lVar38 = lVar38 + _DAT_0012caf0" (identifier "lVar38") (= "=") (binary_expression "lVar38 + _DAT_0012caf0" (identifier "lVar38") (+ "+") (identifier "_DAT_0012caf0"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" (if "if") (parenthesized_expression "((*(byte *)((long)param_2 + 0x44) & 7) != 3)" (( "(") (binary_expression "(*(byte *)((long)param_2 + 0x44) & 7) != 3" (parenthesized_expression "(*(byte *)((long)param_2 + 0x44) & 7)" (( "(") (binary_expression "*(byte *)((long)param_2 + 0x44) & 7" (pointer_expression "*(byte *)((long)param_2 + 0x44)" (* "*") (cast_expression "(byte *)((long)param_2 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 0x44)" (( "(") (binary_expression "(long)param_2 + 0x44" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);\n          if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }\n          iVar7 = bfd_set_start_address(param_2,lVar38);\n          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;\n        }" ({ "{") (expression_statement "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);" (assignment_expression "uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" (identifier "uVar28") (= "=") (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &\n                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" (binary_expression "~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14)" (unary_expression "~DAT_0012cab0" (~ "~") (identifier "DAT_0012cab0")) (& "&") (pointer_expression "*(uint *)(param_2[1] + 0x14)" (* "*") (cast_expression "(uint *)(param_2[1] + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x14)" (( "(") (binary_expression "param_2[1] + 0x14" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) (& "&") (parenthesized_expression "(DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff)" (( "(") (binary_expression "DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff" (identifier "DAT_0012cab4") (| "|") (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0xfffff" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "0xfffff"))) () ")")))) (; ";")) (if_statement "if (DAT_0012cb0c == 7) {\n            uVar28 = uVar28 & 0xfffffffe;\n          }" (if "if") (parenthesized_expression "(DAT_0012cb0c == 7)" (( "(") (binary_expression "DAT_0012cb0c == 7" (identifier "DAT_0012cb0c") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n            uVar28 = uVar28 & 0xfffffffe;\n          }" ({ "{") (expression_statement "uVar28 = uVar28 & 0xfffffffe;" (assignment_expression "uVar28 = uVar28 & 0xfffffffe" (identifier "uVar28") (= "=") (binary_expression "uVar28 & 0xfffffffe" (identifier "uVar28") (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_set_start_address(param_2,lVar38);" (assignment_expression "iVar7 = bfd_set_start_address(param_2,lVar38)" (identifier "iVar7") (= "=") (call_expression "bfd_set_start_address(param_2,lVar38)" (identifier "bfd_set_start_address") (argument_list "(param_2,lVar38)" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") () ")")))) (; ";")) (if_statement "if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))\n          goto LAB_001091b0;" (if "if") (parenthesized_expression "((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))" (( "(") (binary_expression "(iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_file_flags(param_2,uVar28)" (identifier "iVar7") (= "=") (call_expression "bfd_set_file_flags(param_2,uVar28)" (identifier "bfd_set_file_flags") (argument_list "(param_2,uVar28)" (( "(") (identifier "param_2") (, ",") (identifier "uVar28") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_001091b0;" (goto "goto") (statement_identifier "LAB_001091b0") (; ";"))) (} "}"))) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" (identifier "uVar8") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar9 = bfd_get_mach(param_1);" (assignment_expression "uVar9 = bfd_get_mach(param_1)" (identifier "uVar9") (= "=") (call_expression "bfd_get_mach(param_1)" (identifier "bfd_get_mach") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (param_3 != 0) {\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar38 = bfd_get_arch_info(param_1);\n          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }\n        }" ({ "{") (expression_statement "lVar38 = bfd_get_arch_info(param_1);" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" (identifier "lVar38") (= "=") (call_expression "bfd_get_arch_info(param_1)" (identifier "bfd_get_arch_info") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }\n          else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" (if "if") (parenthesized_expression "((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0))" (( "(") (binary_expression "(lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)" (( "(") (comma_expression "lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0" (assignment_expression "lVar38 = bfd_get_arch_info(param_1)" (identifier "lVar38") (= "=") (call_expression "bfd_get_arch_info(param_1)" (identifier "bfd_get_arch_info") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "*(int *)(lVar38 + 0xc) == 0" (pointer_expression "*(int *)(lVar38 + 0xc)" (* "*") (cast_expression "(int *)(lVar38 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0xc)" (( "(") (binary_expression "lVar38 + 0xc" (identifier "lVar38") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            uVar8 = *(undefined4 *)(param_3 + 0xc);\n            uVar9 = *(undefined4 *)(param_3 + 0x10);\n          }" ({ "{") (expression_statement "uVar8 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(param_3 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar9 = *(undefined4 *)(param_3 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" (else "else") (compound_statement "{\n            uVar12 = FUN_0011bfe0(param_1);\n            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n            FUN_0011b660(uVar13,uVar12);\n          }" ({ "{") (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" (identifier "uVar12") (= "=") (call_expression "FUN_0011bfe0(param_1)" (identifier "FUN_0011bfe0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" (identifier "dcgettext") (argument_list "(0,"Input file `%s\' ignores binary architecture parameter.",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Input file `%s\' ignores binary architecture parameter."" (" """) (string_content "Input file `%s") (escape_sequence "\'") (string_content " ignores binary architecture parameter.") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar13,uVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9)" (parenthesized_expression "(**(code **)(param_2[1] + 0x290))" (( "(") (pointer_expression "**(code **)(param_2[1] + 0x290)" (* "*") (pointer_expression "*(code **)(param_2[1] + 0x290)" (* "*") (cast_expression "(code **)(param_2[1] + 0x290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[1] + 0x290)" (( "(") (binary_expression "param_2[1] + 0x290" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x290")) () ")"))))) () ")")) (argument_list "(param_2,uVar8,uVar9)" (( "(") (identifier "param_2") (, ",") (identifier "uVar8") (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }\n          iVar7 = bfd_get_arch(param_1);\n          iVar10 = bfd_get_arch(param_2);\n          if (iVar7 != iVar10) goto LAB_0010916a;\n        }" ({ "{") (if_statement "if ((*(byte *)(param_1 + 0x47) & 4) != 0) {\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x47) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x47) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x47) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0x47) & 4" (pointer_expression "*(byte *)(param_1 + 0x47)" (* "*") (cast_expression "(byte *)(param_1 + 0x47)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x47)" (( "(") (binary_expression "param_1 + 0x47" (identifier "param_1") (+ "+") (number_literal "0x47")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);\n            if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }\n            uVar13 = dcgettext(0,pcVar39,5);\n            FUN_0011b660(uVar13,uVar12);\n            return 0;\n          }" ({ "{") (labeled_statement "LAB_0010916a:\n            iVar7 = bfd_get_arch(param_1);" (statement_identifier "LAB_0010916a") (: ":") (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" (identifier "iVar7") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar7 == 0) {\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }\n            else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar12 = FUN_0011bfe0(param_1);\n              pcVar39 = "Unable to recognise the format of the input file `%s\'";\n            }" ({ "{") (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" (identifier "uVar12") (= "=") (call_expression "FUN_0011bfe0(param_1)" (identifier "FUN_0011bfe0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar39 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar39 = "Unable to recognise the format of the input file `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""Unable to recognise the format of the input file `%s\'"" (" """) (string_content "Unable to recognise the format of the input file `%s") (escape_sequence "\'") (" """))) (; ";")) (} "}")) (else_clause "else {\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" (else "else") (compound_statement "{\n              uVar12 = bfd_get_mach(param_1);\n              uVar8 = bfd_get_arch(param_1);\n              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);\n              pcVar39 = "Output file cannot represent architecture `%s\'";\n            }" ({ "{") (expression_statement "uVar12 = bfd_get_mach(param_1);" (assignment_expression "uVar12 = bfd_get_mach(param_1)" (identifier "uVar12") (= "=") (call_expression "bfd_get_mach(param_1)" (identifier "bfd_get_mach") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar8 = bfd_get_arch(param_1);" (assignment_expression "uVar8 = bfd_get_arch(param_1)" (identifier "uVar8") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar12 = bfd_printable_arch_mach(uVar8,uVar12);" (assignment_expression "uVar12 = bfd_printable_arch_mach(uVar8,uVar12)" (identifier "uVar12") (= "=") (call_expression "bfd_printable_arch_mach(uVar8,uVar12)" (identifier "bfd_printable_arch_mach") (argument_list "(uVar8,uVar12)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "pcVar39 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar39 = "Output file cannot represent architecture `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""Output file cannot represent architecture `%s\'"" (" """) (string_content "Output file cannot represent architecture `%s") (escape_sequence "\'") (" """))) (; ";")) (} "}")))) (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,pcVar39,5)" (identifier "dcgettext") (argument_list "(0,pcVar39,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar39") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar13,uVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_get_arch(param_1);" (assignment_expression "iVar7 = bfd_get_arch(param_1)" (identifier "iVar7") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar10 = bfd_get_arch(param_2);" (assignment_expression "iVar10 = bfd_get_arch(param_2)" (identifier "iVar10") (= "=") (call_expression "bfd_get_arch(param_2)" (identifier "bfd_get_arch") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 != iVar10) goto LAB_0010916a;" (if "if") (parenthesized_expression "(iVar7 != iVar10)" (( "(") (binary_expression "iVar7 != iVar10" (identifier "iVar7") (!= "!=") (identifier "iVar10")) () ")")) (goto_statement "goto LAB_0010916a;" (goto "goto") (statement_identifier "LAB_0010916a") (; ";"))) (} "}"))) (expression_statement "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);" (assignment_expression "iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" (identifier "iVar7") (= "=") (call_expression "bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7)" (identifier "bfd_set_format") (argument_list "(param_2,*(byte *)(param_1 + 0x44) & 7)" (( "(") (identifier "param_2") (, ",") (binary_expression "*(byte *)(param_1 + 0x44) & 7" (pointer_expression "*(byte *)(param_1 + 0x44)" (* "*") (cast_expression "(byte *)(param_1 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "7")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);\n          return 0;\n        }" ({ "{") (labeled_statement "LAB_001091b0:\n          FUN_0011c0d0(0,param_1,0,0);" (statement_identifier "LAB_001091b0") (: ":") (expression_statement "FUN_0011c0d0(0,param_1,0,0);" (call_expression "FUN_0011c0d0(0,param_1,0,0)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,0,0)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);" (assignment_expression "uVar28 = *(uint *)((undefined8 *)param_2[1] + 1)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)((undefined8 *)param_2[1] + 1)" (* "*") (cast_expression "(uint *)((undefined8 *)param_2[1] + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined8 *)param_2[1] + 1)" (( "(") (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" (identifier "bVar49") (= "=") (binary_expression "uVar28 < 2" (identifier "uVar28") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" (identifier "bVar50") (= "=") (binary_expression "uVar28 == 2" (identifier "uVar28") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar50) {\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(bVar50)" (( "(") (identifier "bVar50") () ")")) (compound_statement "{\n          lVar38 = 4;\n          pbVar40 = *(byte **)param_2[1];\n          pbVar43 = &DAT_0011e166;\n          do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);\n          if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }\n        }" ({ "{") (expression_statement "lVar38 = 4;" (assignment_expression "lVar38 = 4" (identifier "lVar38") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar40 = *(byte **)param_2[1];" (assignment_expression "pbVar40 = *(byte **)param_2[1]" (identifier "pbVar40") (= "=") (pointer_expression "*(byte **)param_2[1]" (* "*") (cast_expression "(byte **)param_2[1]" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" (identifier "pbVar43") (= "=") (pointer_expression "&DAT_0011e166" (& "&") (identifier "DAT_0011e166"))) (; ";")) (do_statement "do {\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          } while (bVar50);" (do "do") (compound_statement "{\n            if (lVar38 == 0) break;\n            lVar38 = lVar38 + -1;\n            bVar49 = *pbVar40 < *pbVar43;\n            bVar50 = *pbVar40 == *pbVar43;\n            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar38 == 0) break;" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar38 = lVar38 + -1;" (assignment_expression "lVar38 = lVar38 + -1" (identifier "lVar38") (= "=") (binary_expression "lVar38 + -1" (identifier "lVar38") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" (identifier "bVar49") (= "=") (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (< "<") (pointer_expression "*pbVar43" (* "*") (identifier "pbVar43")))) (; ";")) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" (identifier "bVar50") (= "=") (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (pointer_expression "*pbVar43" (* "*") (identifier "pbVar43")))) (; ";")) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" (identifier "pbVar40") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" (identifier "pbVar43") (= "=") (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" (identifier "pbVar43") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar50)" (( "(") (identifier "bVar50") () ")")) (; ";")) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" (if "if") (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" (( "(") (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" (( "(") (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" (! "!") (identifier "bVar49")) (&& "&&") (unary_expression "!bVar50" (! "!") (identifier "bVar50"))) () ")")) (== "==") (identifier "bVar49")) () ")")) (compound_statement "{\n            lVar38 = param_2[0x1f];\n            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);\n            bVar49 = uVar28 < 2;\n            bVar50 = uVar28 == 2;\n            if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }\n            uVar21 = DAT_0012b4f8;\n            if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }\n            if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }\n            if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }\n            if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }\n            uVar29 = DAT_0012b4d8;\n            if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }\n            if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }\n            if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }\n            if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }\n            if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }\n            if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }\n            if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }\n          }" ({ "{") (expression_statement "lVar38 = param_2[0x1f];" (assignment_expression "lVar38 = param_2[0x1f]" (identifier "lVar38") (= "=") (subscript_expression "param_2[0x1f]" (identifier "param_2") ([ "[") (number_literal "0x1f") (] "]"))) (; ";")) (expression_statement "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);" (assignment_expression "uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(*(undefined8 **)(param_1 + 8) + 1)" (* "*") (cast_expression "(uint *)(*(undefined8 **)(param_1 + 8) + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(undefined8 **)(param_1 + 8) + 1)" (( "(") (binary_expression "*(undefined8 **)(param_1 + 8) + 1" (pointer_expression "*(undefined8 **)(param_1 + 8)" (* "*") (cast_expression "(undefined8 **)(param_1 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "bVar49 = uVar28 < 2;" (assignment_expression "bVar49 = uVar28 < 2" (identifier "bVar49") (= "=") (binary_expression "uVar28 < 2" (identifier "uVar28") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar50 = uVar28 == 2;" (assignment_expression "bVar50 = uVar28 == 2" (identifier "bVar50") (= "=") (binary_expression "uVar28 == 2" (identifier "uVar28") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar50) {\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(bVar50)" (( "(") (identifier "bVar50") () ")")) (compound_statement "{\n              lVar16 = 4;\n              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);\n              pbVar43 = &DAT_0011e166;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);\n              if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }\n            }" ({ "{") (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" (identifier "lVar16") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);" (assignment_expression "pbVar40 = (byte *)**(undefined8 **)(param_1 + 8)" (identifier "pbVar40") (= "=") (cast_expression "(byte *)**(undefined8 **)(param_1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined8 **)(param_1 + 8)" (* "*") (pointer_expression "*(undefined8 **)(param_1 + 8)" (* "*") (cast_expression "(undefined8 **)(param_1 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))))) (; ";")) (expression_statement "pbVar43 = &DAT_0011e166;" (assignment_expression "pbVar43 = &DAT_0011e166" (identifier "pbVar43") (= "=") (pointer_expression "&DAT_0011e166" (& "&") (identifier "DAT_0011e166"))) (; ";")) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              } while (bVar50);" (do "do") (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar49 = *pbVar40 < *pbVar43;\n                bVar50 = *pbVar40 == *pbVar43;\n                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;\n                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;\n              }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar49 = *pbVar40 < *pbVar43;" (assignment_expression "bVar49 = *pbVar40 < *pbVar43" (identifier "bVar49") (= "=") (binary_expression "*pbVar40 < *pbVar43" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (< "<") (pointer_expression "*pbVar43" (* "*") (identifier "pbVar43")))) (; ";")) (expression_statement "bVar50 = *pbVar40 == *pbVar43;" (assignment_expression "bVar50 = *pbVar40 == *pbVar43" (identifier "bVar50") (= "=") (binary_expression "*pbVar40 == *pbVar43" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (pointer_expression "*pbVar43" (* "*") (identifier "pbVar43")))) (; ";")) (expression_statement "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar40 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar40 + (ulong)bVar51 * -2" (identifier "pbVar40") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;" (assignment_expression "pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1" (identifier "pbVar43") (= "=") (binary_expression "pbVar43 + (ulong)bVar51 * -2 + 1" (binary_expression "pbVar43 + (ulong)bVar51 * -2" (identifier "pbVar43") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar50)" (( "(") (identifier "bVar50") () ")")) (; ";")) (if_statement "if ((!bVar49 && !bVar50) == bVar49) {\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" (if "if") (parenthesized_expression "((!bVar49 && !bVar50) == bVar49)" (( "(") (binary_expression "(!bVar49 && !bVar50) == bVar49" (parenthesized_expression "(!bVar49 && !bVar50)" (( "(") (binary_expression "!bVar49 && !bVar50" (unary_expression "!bVar49" (! "!") (identifier "bVar49")) (&& "&&") (unary_expression "!bVar50" (! "!") (identifier "bVar50"))) () ")")) (== "==") (identifier "bVar49")) () ")")) (compound_statement "{\n                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);\n                puVar44 = (undefined8 *)(lVar38 + 200);\n                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }\n              }" ({ "{") (expression_statement "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);" (assignment_expression "puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" (identifier "puVar33") (= "=") (cast_expression "(undefined8 *)(*(long *)(param_1 + 0xf8) + 200)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 200)" (( "(") (binary_expression "*(long *)(param_1 + 0xf8) + 200" (pointer_expression "*(long *)(param_1 + 0xf8)" (* "*") (cast_expression "(long *)(param_1 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "200")) () ")")))) (; ";")) (expression_statement "puVar44 = (undefined8 *)(lVar38 + 200);" (assignment_expression "puVar44 = (undefined8 *)(lVar38 + 200)" (identifier "puVar44") (= "=") (cast_expression "(undefined8 *)(lVar38 + 200)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 200)" (( "(") (binary_expression "lVar38 + 200" (identifier "lVar38") (+ "+") (number_literal "200")) () ")")))) (; ";")) (for_statement "for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" (for "for") (( "(") (assignment_expression "lVar16 = 0x37" (identifier "lVar16") (= "=") (number_literal "0x37")) (; ";") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n                  *puVar44 = *puVar33;\n                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;\n                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;\n                }" ({ "{") (expression_statement "*puVar44 = *puVar33;" (assignment_expression "*puVar44 = *puVar33" (pointer_expression "*puVar44" (* "*") (identifier "puVar44")) (= "=") (pointer_expression "*puVar33" (* "*") (identifier "puVar33"))) (; ";")) (expression_statement "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar33 = puVar33 + (ulong)bVar51 * -2 + 1" (identifier "puVar33") (= "=") (binary_expression "puVar33 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar33 + (ulong)bVar51 * -2" (identifier "puVar33") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;" (assignment_expression "puVar44 = puVar44 + (ulong)bVar51 * -2 + 1" (identifier "puVar44") (= "=") (binary_expression "puVar44 + (ulong)bVar51 * -2 + 1" (binary_expression "puVar44 + (ulong)bVar51 * -2" (identifier "puVar44") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar21 = DAT_0012b4f8;" (assignment_expression "uVar21 = DAT_0012b4f8" (identifier "uVar21") (= "=") (identifier "DAT_0012b4f8")) (; ";")) (if_statement "if (DAT_0012b4f8 == 0xffffffffffffffff) {\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4f8 == 0xffffffffffffffff)" (( "(") (binary_expression "DAT_0012b4f8 == 0xffffffffffffffff" (identifier "DAT_0012b4f8") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n              DAT_0012b4f8 = 0x200;\n              uVar21 = 0x200;\n            }" ({ "{") (expression_statement "DAT_0012b4f8 = 0x200;" (assignment_expression "DAT_0012b4f8 = 0x200" (identifier "DAT_0012b4f8") (= "=") (number_literal "0x200")) (; ";")) (expression_statement "uVar21 = 0x200;" (assignment_expression "uVar21 = 0x200" (identifier "uVar21") (= "=") (number_literal "0x200")) (; ";")) (} "}")) (else_clause "else {\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" (else "else") (compound_statement "{\n              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;\n            }" ({ "{") (expression_statement "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;" (assignment_expression "*(ulong *)(lVar38 + 0x110) = DAT_0012b4f8" (pointer_expression "*(ulong *)(lVar38 + 0x110)" (* "*") (cast_expression "(ulong *)(lVar38 + 0x110)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x110)" (( "(") (binary_expression "lVar38 + 0x110" (identifier "lVar38") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "DAT_0012b4f8")) (; ";")) (} "}")))) (if_statement "if (DAT_0012b4f0 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4f0 != -1)" (( "(") (binary_expression "DAT_0012b4f0 != -1" (identifier "DAT_0012b4f0") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;\n            }" ({ "{") (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4f0;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4f0" (pointer_expression "*(long *)(lVar38 + 0x168)" (* "*") (cast_expression "(long *)(lVar38 + 0x168)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x168)" (( "(") (binary_expression "lVar38 + 0x168" (identifier "lVar38") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (identifier "DAT_0012b4f0")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4e8 != -1) {\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4e8 != -1)" (( "(") (binary_expression "DAT_0012b4e8 != -1" (identifier "DAT_0012b4e8") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;\n            }" ({ "{") (expression_statement "*(long *)(lVar38 + 0x168) = DAT_0012b4e8;" (assignment_expression "*(long *)(lVar38 + 0x168) = DAT_0012b4e8" (pointer_expression "*(long *)(lVar38 + 0x168)" (* "*") (cast_expression "(long *)(lVar38 + 0x168)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x168)" (( "(") (binary_expression "lVar38 + 0x168" (identifier "lVar38") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (identifier "DAT_0012b4e8")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4e0 != -1) {\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4e0 != -1)" (( "(") (binary_expression "DAT_0012b4e0 != -1" (identifier "DAT_0012b4e0") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;\n            }" ({ "{") (expression_statement "*(long *)(lVar38 + 0x100) = DAT_0012b4e0;" (assignment_expression "*(long *)(lVar38 + 0x100) = DAT_0012b4e0" (pointer_expression "*(long *)(lVar38 + 0x100)" (* "*") (cast_expression "(long *)(lVar38 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x100)" (( "(") (binary_expression "lVar38 + 0x100" (identifier "lVar38") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "DAT_0012b4e0")) (; ";")) (} "}"))) (expression_statement "uVar29 = DAT_0012b4d8;" (assignment_expression "uVar29 = DAT_0012b4d8" (identifier "uVar29") (= "=") (identifier "DAT_0012b4d8")) (; ";")) (if_statement "if (DAT_0012b4d8 == 0xffffffffffffffff) {\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }\n            else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4d8 == 0xffffffffffffffff)" (( "(") (binary_expression "DAT_0012b4d8 == 0xffffffffffffffff" (identifier "DAT_0012b4d8") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n              DAT_0012b4d8 = 0x1000;\n              uVar29 = 0x1000;\n            }" ({ "{") (expression_statement "DAT_0012b4d8 = 0x1000;" (assignment_expression "DAT_0012b4d8 = 0x1000" (identifier "DAT_0012b4d8") (= "=") (number_literal "0x1000")) (; ";")) (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" (identifier "uVar29") (= "=") (number_literal "0x1000")) (; ";")) (} "}")) (else_clause "else {\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" (else "else") (compound_statement "{\n              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;\n            }" ({ "{") (expression_statement "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;" (assignment_expression "*(ulong *)(lVar38 + 0x108) = DAT_0012b4d8" (pointer_expression "*(ulong *)(lVar38 + 0x108)" (* "*") (cast_expression "(ulong *)(lVar38 + 0x108)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x108)" (( "(") (binary_expression "lVar38 + 0x108" (identifier "lVar38") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "DAT_0012b4d8")) (; ";")) (} "}")))) (if_statement "if (DAT_0012b4d0 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4d0 != -1)" (( "(") (binary_expression "DAT_0012b4d0 != -1" (identifier "DAT_0012b4d0") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;\n            }" ({ "{") (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4d0;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4d0" (pointer_expression "*(long *)(lVar38 + 0x158)" (* "*") (cast_expression "(long *)(lVar38 + 0x158)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x158)" (( "(") (binary_expression "lVar38 + 0x158" (identifier "lVar38") (+ "+") (number_literal "0x158")) () ")")))) (= "=") (identifier "DAT_0012b4d0")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4c8 != -1) {\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4c8 != -1)" (( "(") (binary_expression "DAT_0012b4c8 != -1" (identifier "DAT_0012b4c8") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;\n            }" ({ "{") (expression_statement "*(long *)(lVar38 + 0x158) = DAT_0012b4c8;" (assignment_expression "*(long *)(lVar38 + 0x158) = DAT_0012b4c8" (pointer_expression "*(long *)(lVar38 + 0x158)" (* "*") (cast_expression "(long *)(lVar38 + 0x158)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x158)" (( "(") (binary_expression "lVar38 + 0x158" (identifier "lVar38") (+ "+") (number_literal "0x158")) () ")")))) (= "=") (identifier "DAT_0012b4c8")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4c4 != -1) {\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4c4 != -1)" (( "(") (binary_expression "DAT_0012b4c4 != -1" (identifier "DAT_0012b4c4") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;\n            }" ({ "{") (expression_statement "*(short *)(lVar38 + 0x148) = DAT_0012b4c4;" (assignment_expression "*(short *)(lVar38 + 0x148) = DAT_0012b4c4" (pointer_expression "*(short *)(lVar38 + 0x148)" (* "*") (cast_expression "(short *)(lVar38 + 0x148)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x148)" (( "(") (binary_expression "lVar38 + 0x148" (identifier "lVar38") (+ "+") (number_literal "0x148")) () ")")))) (= "=") (identifier "DAT_0012b4c4")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4c2 != -1) {\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4c2 != -1)" (( "(") (binary_expression "DAT_0012b4c2 != -1" (identifier "DAT_0012b4c2") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;\n            }" ({ "{") (expression_statement "*(short *)(lVar38 + 0x120) = DAT_0012b4c2;" (assignment_expression "*(short *)(lVar38 + 0x120) = DAT_0012b4c2" (pointer_expression "*(short *)(lVar38 + 0x120)" (* "*") (cast_expression "(short *)(lVar38 + 0x120)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x120)" (( "(") (binary_expression "lVar38 + 0x120" (identifier "lVar38") (+ "+") (number_literal "0x120")) () ")")))) (= "=") (identifier "DAT_0012b4c2")) (; ";")) (} "}"))) (if_statement "if (DAT_0012b4c0 != -1) {\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" (if "if") (parenthesized_expression "(DAT_0012b4c0 != -1)" (( "(") (binary_expression "DAT_0012b4c0 != -1" (identifier "DAT_0012b4c0") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;\n            }" ({ "{") (expression_statement "*(short *)(lVar38 + 0x122) = DAT_0012b4c0;" (assignment_expression "*(short *)(lVar38 + 0x122) = DAT_0012b4c0" (pointer_expression "*(short *)(lVar38 + 0x122)" (* "*") (cast_expression "(short *)(lVar38 + 0x122)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x122)" (( "(") (binary_expression "lVar38 + 0x122" (identifier "lVar38") (+ "+") (number_literal "0x122")) () ")")))) (= "=") (identifier "DAT_0012b4c0")) (; ";")) (} "}"))) (if_statement "if (uVar29 < uVar21) {\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" (if "if") (parenthesized_expression "(uVar29 < uVar21)" (( "(") (binary_expression "uVar29 < uVar21" (identifier "uVar29") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n              sprintf((char *)local_78,"%016lx");\n              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);\n              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n              FUN_0011b660(uVar12,local_78,&local_58);\n            }" ({ "{") (expression_statement "sprintf((char *)local_78,"%016lx");" (call_expression "sprintf((char *)local_78,"%016lx")" (identifier "sprintf") (argument_list "((char *)local_78,"%016lx")" (( "(") (cast_expression "(char *)local_78" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_78")) (, ",") (string_literal ""%016lx"" (" """) (string_content "%016lx") (" """)) () ")"))) (; ";")) (expression_statement "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);" (call_expression "sprintf((char *)&local_58,"%016lx",DAT_0012b4d8)" (identifier "sprintf") (argument_list "((char *)&local_58,"%016lx",DAT_0012b4d8)" (( "(") (cast_expression "(char *)&local_58" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (, ",") (string_literal ""%016lx"" (" """) (string_content "%016lx") (" """)) (, ",") (identifier "DAT_0012b4d8") () ")"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" (identifier "dcgettext") (argument_list "(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: file alignment (0x%s) > section alignment (0x%s)"" (" """) (string_content "warning: file alignment (0x%s) > section alignment (0x%s)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12,local_78,&local_58);" (call_expression "FUN_0011b660(uVar12,local_78,&local_58)" (identifier "FUN_0011b660") (argument_list "(uVar12,local_78,&local_58)" (( "(") (identifier "uVar12") (, ",") (identifier "local_78") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "plVar15 = DAT_0012cb40;" (assignment_expression "plVar15 = DAT_0012cb40" (identifier "plVar15") (= "=") (identifier "DAT_0012cb40")) (; ";")) (if_statement "if (DAT_0012cb40 != (long *)0x0) {\n          free(DAT_0012cb40);\n        }" (if "if") (parenthesized_expression "(DAT_0012cb40 != (long *)0x0)" (( "(") (binary_expression "DAT_0012cb40 != (long *)0x0" (identifier "DAT_0012cb40") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(DAT_0012cb40);\n        }" ({ "{") (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" (identifier "free") (argument_list "(DAT_0012cb40)" (( "(") (identifier "DAT_0012cb40") () ")"))) (; ";")) (} "}"))) (if_statement "if (plVar15 != DAT_0012cb38) {\n          free(DAT_0012cb38);\n        }" (if "if") (parenthesized_expression "(plVar15 != DAT_0012cb38)" (( "(") (binary_expression "plVar15 != DAT_0012cb38" (identifier "plVar15") (!= "!=") (identifier "DAT_0012cb38")) () ")")) (compound_statement "{\n          free(DAT_0012cb38);\n        }" ({ "{") (expression_statement "free(DAT_0012cb38);" (call_expression "free(DAT_0012cb38)" (identifier "free") (argument_list "(DAT_0012cb38)" (( "(") (identifier "DAT_0012cb38") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" (identifier "DAT_0012cb40") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" (identifier "DAT_0012cb38") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);" (assignment_expression "lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" (identifier "lVar38") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f0))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f0)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f0)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f0)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x1f0" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1f0")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar38 < 0) goto LAB_001091b0;" (if "if") (parenthesized_expression "(lVar38 < 0)" (( "(") (binary_expression "lVar38 < 0" (identifier "lVar38") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_001091b0;" (goto "goto") (statement_identifier "LAB_001091b0") (; ";"))) (expression_statement "DAT_0012cb38 = (long *)xmalloc(lVar38);" (assignment_expression "DAT_0012cb38 = (long *)xmalloc(lVar38)" (identifier "DAT_0012cb38") (= "=") (cast_expression "(long *)xmalloc(lVar38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(lVar38)" (identifier "xmalloc") (argument_list "(lVar38)" (( "(") (identifier "lVar38") () ")"))))) (; ";")) (expression_statement "DAT_0012cb40 = DAT_0012cb38;" (assignment_expression "DAT_0012cb40 = DAT_0012cb38" (identifier "DAT_0012cb40") (= "=") (identifier "DAT_0012cb38")) (; ";")) (expression_statement "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);" (assignment_expression "local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" (identifier "local_100") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x1f8))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x1f8)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x1f8)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x1f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1f8)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x1f8" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1f8")) () ")"))))) () ")")) (argument_list "(param_1,DAT_0012cb38)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0012cb38") () ")")))) (; ";")) (if_statement "if ((long)local_100 < 0) goto LAB_001091b0;" (if "if") (parenthesized_expression "((long)local_100 < 0)" (( "(") (binary_expression "(long)local_100 < 0" (cast_expression "(long)local_100" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_100")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_001091b0;" (goto "goto") (statement_identifier "LAB_001091b0") (; ";"))) (if_statement "if (local_100 == 0) {\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" (if "if") (parenthesized_expression "(local_100 == 0)" (( "(") (binary_expression "local_100 == 0" (identifier "local_100") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          free(DAT_0012cb40);\n          DAT_0012cb40 = (long *)0x0;\n          DAT_0012cb38 = (long *)0x0;\n        }" ({ "{") (expression_statement "free(DAT_0012cb40);" (call_expression "free(DAT_0012cb40)" (identifier "free") (argument_list "(DAT_0012cb40)" (( "(") (identifier "DAT_0012cb40") () ")"))) (; ";")) (expression_statement "DAT_0012cb40 = (long *)0x0;" (assignment_expression "DAT_0012cb40 = (long *)0x0" (identifier "DAT_0012cb40") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_0012cb38 = (long *)0x0;" (assignment_expression "DAT_0012cb38 = (long *)0x0" (identifier "DAT_0012cb38") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "bfd_map_over_sections(param_1,FUN_001083b0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_001083b0,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_001083b0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_001083b0") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" (identifier "puVar33") (= "=") (identifier "DAT_0012caa8")) (; ";")) (if_statement "if ((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)) {\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" (if "if") (parenthesized_expression "((DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0))" (( "(") (binary_expression "(DAT_0012c9f4 == 0) &&\n           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012c9f4 == 0)" (( "(") (binary_expression "DAT_0012c9f4 == 0" (identifier "DAT_0012c9f4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(param_2[1] + 0x160))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x160))" (( "(") (pointer_expression "**(code **)(param_2[1] + 0x160)" (* "*") (pointer_expression "*(code **)(param_2[1] + 0x160)" (* "*") (cast_expression "(code **)(param_2[1] + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[1] + 0x160)" (( "(") (binary_expression "param_2[1] + 0x160" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x160")) () ")"))))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (comma_expression "puVar33 = DAT_0012caa8,\n           iVar7 == 0" (assignment_expression "puVar33 = DAT_0012caa8" (identifier "puVar33") (= "=") (identifier "DAT_0012caa8")) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n          DAT_0012cb24 = 1;\n          uVar12 = dcgettext(0,"error in private header data",5);\n          FUN_0011c0d0(0,param_1,0,uVar12);\n          puVar33 = DAT_0012caa8;\n        }" ({ "{") (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar12 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar12 = dcgettext(0,"error in private header data",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"error in private header data",5)" (identifier "dcgettext") (argument_list "(0,"error in private header data",5)" (( "(") (number_literal "0") (, ",") (string_literal ""error in private header data"" (" """) (string_content "error in private header data") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,0,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "puVar33 = DAT_0012caa8;" (assignment_expression "puVar33 = DAT_0012caa8" (identifier "puVar33") (= "=") (identifier "DAT_0012caa8")) (; ";")) (} "}"))) (for_statement "for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" (for "for") (( "(") (; ";") (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" (identifier "puVar44") (= "=") (identifier "DAT_0012caa0")) (, ",") (binary_expression "puVar33 != (undefined8 *)0x0" (identifier "puVar33") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar33 = (undefined8 *)*puVar33" (identifier "puVar33") (= "=") (cast_expression "(undefined8 *)*puVar33" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar33" (* "*") (identifier "puVar33")))) () ")") (compound_statement "{\n          uVar28 = 0x128;\n          lVar38 = FUN_00107360(puVar33[1],0,0x40);\n          if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }\n          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);\n          if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }\n          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);\n          puVar33[5] = lVar38;\n          if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }\n          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);\n          if (iVar7 == 0) goto LAB_00109aa8;\n          lVar38 = FUN_00107360(puVar33[1],0,0xc);\n          if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }\n          lVar38 = FUN_00107360(puVar33[1],0,0x30);\n          if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }\n        }" ({ "{") (expression_statement "uVar28 = 0x128;" (assignment_expression "uVar28 = 0x128" (identifier "uVar28") (= "=") (number_literal "0x128")) (; ";")) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x40);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x40)" (identifier "lVar38") (= "=") (call_expression "FUN_00107360(puVar33[1],0,0x40)" (identifier "FUN_00107360") (argument_list "(puVar33[1],0,0x40)" (( "(") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (lVar38 != 0) {\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" (if "if") (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;\n          }" ({ "{") (expression_statement "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;" (assignment_expression "uVar28 = *(uint *)(lVar38 + 0x28) | 0x100" (identifier "uVar28") (= "=") (binary_expression "*(uint *)(lVar38 + 0x28) | 0x100" (pointer_expression "*(uint *)(lVar38 + 0x28)" (* "*") (cast_expression "(uint *)(lVar38 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x28)" (( "(") (binary_expression "lVar38 + 0x28" (identifier "lVar38") (+ "+") (number_literal "0x28")) () ")")))) (| "|") (number_literal "0x100"))) (; ";")) (} "}"))) (expression_statement "lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,puVar33[1])" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_2,puVar33[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_2,puVar33[1])" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (lVar38 != 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" (if "if") (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t add section \'%s\'";\n            goto LAB_00109ad0;\n          }" ({ "{") (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" (identifier "lVar38") (= "=") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar39 = "can\'t add section \'%s\'";" (assignment_expression "pcVar39 = "can\'t add section \'%s\'"" (identifier "pcVar39") (= "=") (string_literal ""can\'t add section \'%s\'"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t add section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00109ad0;" (goto "goto") (statement_identifier "LAB_00109ad0") (; ";")) (} "}"))) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" (identifier "lVar38") (= "=") (call_expression "bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000)" (identifier "bfd_make_section_with_flags") (argument_list "(param_2,puVar33[1],uVar28 | 0x100000)" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "uVar28 | 0x100000" (identifier "uVar28") (| "|") (number_literal "0x100000")) () ")")))) (; ";")) (expression_statement "puVar33[5] = lVar38;" (assignment_expression "puVar33[5] = lVar38" (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "lVar38")) (; ";")) (if_statement "if (lVar38 == 0) {\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            lVar38 = puVar33[1];\n            pcVar39 = "can\'t create section `%s\'";\n            goto LAB_00109ad0;\n          }" ({ "{") (expression_statement "lVar38 = puVar33[1];" (assignment_expression "lVar38 = puVar33[1]" (identifier "lVar38") (= "=") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar39 = "can\'t create section `%s\'";" (assignment_expression "pcVar39 = "can\'t create section `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""can\'t create section `%s\'"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create section `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00109ad0;" (goto "goto") (statement_identifier "LAB_00109ad0") (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,lVar38,puVar33[3])" (identifier "bfd_set_section_size") (argument_list "(param_2,lVar38,puVar33[3])" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (subscript_expression "puVar33[3]" (identifier "puVar33") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00109aa8;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109aa8;" (goto "goto") (statement_identifier "LAB_00109aa8") (; ";"))) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0xc);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0xc)" (identifier "lVar38") (= "=") (call_expression "FUN_00107360(puVar33[1],0,0xc)" (identifier "FUN_00107360") (argument_list "(puVar33[1],0,0xc)" (( "(") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")")))) (; ";")) (if_statement "if (lVar38 != 0) {\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" (if "if") (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = *(undefined8 *)(lVar38 + 0x18);\n            lVar38 = puVar33[5];\n            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;\n            *(undefined8 *)(lVar38 + 0x30) = uVar12;\n            *(undefined8 *)(lVar38 + 0x28) = uVar12;\n          }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x18);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x18)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(lVar38 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar38 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x18)" (( "(") (binary_expression "lVar38 + 0x18" (identifier "lVar38") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar38 = puVar33[5];" (assignment_expression "lVar38 = puVar33[5]" (identifier "lVar38") (= "=") (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;" (assignment_expression "*(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" (* "*") (cast_expression "(byte *)(lVar38 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x24)" (( "(") (binary_expression "lVar38 + 0x24" (identifier "lVar38") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar38 + 0x24) | 1" (pointer_expression "*(byte *)(lVar38 + 0x24)" (* "*") (cast_expression "(byte *)(lVar38 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x24)" (( "(") (binary_expression "lVar38 + 0x24" (identifier "lVar38") (+ "+") (number_literal "0x24")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(lVar38 + 0x30) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x30) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar38 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x30)" (( "(") (binary_expression "lVar38 + 0x30" (identifier "lVar38") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined8 *)(lVar38 + 0x28) = uVar12;" (assignment_expression "*(undefined8 *)(lVar38 + 0x28) = uVar12" (pointer_expression "*(undefined8 *)(lVar38 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar38 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x28)" (( "(") (binary_expression "lVar38 + 0x28" (identifier "lVar38") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (expression_statement "lVar38 = FUN_00107360(puVar33[1],0,0x30);" (assignment_expression "lVar38 = FUN_00107360(puVar33[1],0,0x30)" (identifier "lVar38") (= "=") (call_expression "FUN_00107360(puVar33[1],0,0x30)" (identifier "FUN_00107360") (argument_list "(puVar33[1],0,0x30)" (( "(") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0x30") () ")")))) (; ";")) (if_statement "if (lVar38 != 0) {\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" (if "if") (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);\n          }" ({ "{") (expression_statement "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);" (assignment_expression "*(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20)" (pointer_expression "*(undefined8 *)(puVar33[5] + 0x30)" (* "*") (cast_expression "(undefined8 *)(puVar33[5] + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar33[5] + 0x30)" (( "(") (binary_expression "puVar33[5] + 0x30" (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar38 + 0x20)" (* "*") (cast_expression "(undefined8 *)(lVar38 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x20)" (( "(") (binary_expression "lVar38 + 0x20" (identifier "lVar38") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" (for "for") (( "(") (; ";") (binary_expression "puVar44 != (undefined8 *)0x0" (identifier "puVar44") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar44 = (undefined8 *)*puVar44" (identifier "puVar44") (= "=") (cast_expression "(undefined8 *)*puVar44" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar44" (* "*") (identifier "puVar44")))) () ")") (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);\n          puVar44[5] = lVar38;\n          if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }\n          uVar12 = *(undefined8 *)(lVar38 + 0x68);\n          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" ({ "{") (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar44[1])" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_1,puVar44[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_1,puVar44[1])" (( "(") (identifier "param_1") (, ",") (subscript_expression "puVar44[1]" (identifier "puVar44") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "puVar44[5] = lVar38;" (assignment_expression "puVar44[5] = lVar38" (subscript_expression "puVar44[5]" (identifier "puVar44") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "lVar38")) (; ";")) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = puVar44[1];\n            pcVar39 = "error: %s not found, can\'t be updated";\n            goto LAB_0010952f;\n          }" ({ "{") (expression_statement "uVar12 = puVar44[1];" (assignment_expression "uVar12 = puVar44[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar44[1]" (identifier "puVar44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar39 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar39 = "error: %s not found, can\'t be updated"" (identifier "pcVar39") (= "=") (string_literal ""error: %s not found, can\'t be updated"" (" """) (string_content "error: %s not found, can") (escape_sequence "\'") (string_content "t be updated") (" """))) (; ";")) (goto_statement "goto LAB_0010952f;" (goto "goto") (statement_identifier "LAB_0010952f") (; ";")) (} "}"))) (expression_statement "uVar12 = *(undefined8 *)(lVar38 + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(lVar38 + 0x68)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(lVar38 + 0x68)" (* "*") (cast_expression "(undefined8 *)(lVar38 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x68)" (( "(") (binary_expression "lVar38 + 0x68" (identifier "lVar38") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,uVar12,puVar44[3])" (identifier "bfd_set_section_size") (argument_list "(param_2,uVar12,puVar44[3])" (( "(") (identifier "param_2") (, ",") (identifier "uVar12") (, ",") (subscript_expression "puVar44[3]" (identifier "puVar44") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" ({ "{") (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,uVar12,0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "uVar12") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))))" (( "(") (binary_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)) &&\n           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" (parenthesized_expression "(((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0))" (( "(") (binary_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&\n            (DAT_0012cb20 != 0)" (parenthesized_expression "((DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0))" (( "(") (binary_expression "(DAT_0012cb20 != 0) &&\n             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" (parenthesized_expression "(DAT_0012cb20 != 0)" (( "(") (binary_expression "DAT_0012cb20 != 0" (identifier "DAT_0012cb20") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)" (( "(") (comma_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes")" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_1,".gnu.build.attributes")" (identifier "bfd_get_section_by_name") (argument_list "(param_1,".gnu.build.attributes")" (( "(") (identifier "param_1") (, ",") (string_literal "".gnu.build.attributes"" (" """) (string_content ".gnu.build.attributes") (" """)) () ")")))) (, ",") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0012cb20 != 0)" (( "(") (binary_expression "DAT_0012cb20 != 0" (identifier "DAT_0012cb20") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))" (( "(") (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0))" (( "(") (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&\n            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" (identifier "iVar7") (= "=") (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" (identifier "FUN_00107fb0") (argument_list "(lVar38,lVar38 + 0xe0)" (( "(") (identifier "lVar38") (, ",") (binary_expression "lVar38 + 0xe0" (identifier "lVar38") (+ "+") (number_literal "0xe0")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar21 = *(ulong *)(lVar38 + 0x38);\n          if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar21 = *(ulong *)(lVar38 + 0x38);" (assignment_expression "uVar21 = *(ulong *)(lVar38 + 0x38)" (identifier "uVar21") (= "=") (pointer_expression "*(ulong *)(lVar38 + 0x38)" (* "*") (cast_expression "(ulong *)(lVar38 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (uVar21 == 0) {\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }\n          else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = dcgettext(0,"warning: note section is empty",5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n            DAT_0012cb20 = 0;\n          }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"warning: note section is empty",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: note section is empty",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"warning: note section is empty",5)" (identifier "dcgettext") (argument_list "(0,"warning: note section is empty",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: note section is empty"" (" """) (string_content "warning: note section is empty") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" (identifier "DAT_0012cb20") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" (else "else") (compound_statement "{\n            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);\n            __dest_00 = DAT_0012cb18;\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }\n          }" ({ "{") (expression_statement "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);" (assignment_expression "iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" (identifier "iVar7") (= "=") (call_expression "bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18)" (identifier "bfd_get_full_section_contents") (argument_list "(param_1,lVar38,&DAT_0012cb18)" (( "(") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (pointer_expression "&DAT_0012cb18" (& "&") (identifier "DAT_0012cb18")) () ")")))) (; ";")) (expression_statement "__dest_00 = DAT_0012cb18;" (assignment_expression "__dest_00 = DAT_0012cb18" (identifier "__dest_00") (= "=") (identifier "DAT_0012cb18")) (; ";")) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }\n            else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar12 = dcgettext(0,"warning: could not load note section",5);\n              FUN_0011c0d0(0,param_1,lVar38,uVar12);\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n            }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"warning: could not load note section",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: could not load note section",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"warning: could not load note section",5)" (identifier "dcgettext") (argument_list "(0,"warning: could not load note section",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: could not load note section"" (" """) (string_content "warning: could not load note section") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" (identifier "free") (argument_list "(DAT_0012cb18)" (( "(") (identifier "DAT_0012cb18") () ")"))) (; ";")) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" (identifier "DAT_0012cb18") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" (identifier "DAT_0012cb20") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" (else "else") (compound_statement "{\n              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);\n              if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }\nLAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);\n              iVar7 = 0;\n              local_c0 = 0;\n              local_b0 = 0;\n              local_c8 = 0;\n              local_b8 = 0;\n              iVar10 = 0;\n              iVar11 = 0;\n              psVar35 = local_110;\n              pvVar23 = __dest_00;\n              local_e8 = uVar21;\n              while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }\n              if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }\n              free(DAT_0012cb18);\n              DAT_0012cb18 = (void *)0x0;\n              DAT_0012cb20 = 0;\n              DAT_0012cb10 = 0;\n            }" ({ "{") (expression_statement "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);" (assignment_expression "lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38)" (identifier "lVar16") (= "=") (call_expression "bfd_get_reloc_upper_bound(param_1,lVar38)" (identifier "bfd_get_reloc_upper_bound") (argument_list "(param_1,lVar38)" (( "(") (identifier "param_1") (, ",") (identifier "lVar38") () ")")))) (; ";")) (if_statement "if (0 < lVar16) {\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" (if "if") (parenthesized_expression "(0 < lVar16)" (( "(") (binary_expression "0 < lVar16" (number_literal "0") (< "<") (identifier "lVar16")) () ")")) (compound_statement "{\n                pvVar23 = (void *)xmalloc(lVar16);\n                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);\n                free(pvVar23);\n                if (lVar16 == 0) goto LAB_0010ae6f;\n                local_110 = (size_t *)0x0;\n                goto LAB_0010b098;\n              }" ({ "{") (expression_statement "pvVar23 = (void *)xmalloc(lVar16);" (assignment_expression "pvVar23 = (void *)xmalloc(lVar16)" (identifier "pvVar23") (= "=") (cast_expression "(void *)xmalloc(lVar16)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(lVar16)" (identifier "xmalloc") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (expression_statement "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);" (assignment_expression "lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" (identifier "lVar16") (= "=") (call_expression "bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40)" (identifier "bfd_canonicalize_reloc") (argument_list "(param_1,lVar38,pvVar23,DAT_0012cb40)" (( "(") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "pvVar23") (, ",") (identifier "DAT_0012cb40") () ")")))) (; ";")) (expression_statement "free(pvVar23);" (call_expression "free(pvVar23)" (identifier "free") (argument_list "(pvVar23)" (( "(") (identifier "pvVar23") () ")"))) (; ";")) (if_statement "if (lVar16 == 0) goto LAB_0010ae6f;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010ae6f;" (goto "goto") (statement_identifier "LAB_0010ae6f") (; ";"))) (expression_statement "local_110 = (size_t *)0x0;" (assignment_expression "local_110 = (size_t *)0x0" (identifier "local_110") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0010b098;" (goto "goto") (statement_identifier "LAB_0010b098") (; ";")) (} "}"))) (labeled_statement "LAB_0010ae6f:\n              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" (statement_identifier "LAB_0010ae6f") (: ":") (expression_statement "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);" (assignment_expression "local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" (identifier "local_110") (= "=") (cast_expression "(size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc)" (identifier "xcalloc") (argument_list "(uVar21 / 0xc,0x48,uVar21 % 0xc)" (( "(") (binary_expression "uVar21 / 0xc" (identifier "uVar21") (/ "/") (number_literal "0xc")) (, ",") (number_literal "0x48") (, ",") (binary_expression "uVar21 % 0xc" (identifier "uVar21") (% "%") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar35 = local_110;" (assignment_expression "psVar35 = local_110" (identifier "psVar35") (= "=") (identifier "local_110")) (; ";")) (expression_statement "pvVar23 = __dest_00;" (assignment_expression "pvVar23 = __dest_00" (identifier "pvVar23") (= "=") (identifier "__dest_00")) (; ";")) (expression_statement "local_e8 = uVar21;" (assignment_expression "local_e8 = uVar21" (identifier "local_e8") (= "=") (identifier "uVar21")) (; ";")) (while_statement "while (0xb < local_e8) {\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" (while "while") (parenthesized_expression "(0xb < local_e8)" (( "(") (binary_expression "0xb < local_e8" (number_literal "0xb") (< "<") (identifier "local_e8")) () ")")) (compound_statement "{\n                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;\n                *psVar35 = uVar41;\n                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);\n                lVar16 = *(long *)(param_1 + 8);\n                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;\n                psVar35[1] = uVar29;\n                sVar17 = (**(code **)(lVar16 + 0x38))();\n                psVar35[2] = sVar17;\n                if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }\n                uVar45 = uVar41 + uVar29 + 0xc;\n                if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }\n                if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }\n                sVar18 = (long)pvVar23 + uVar41 + 0xc;\n                psVar35[3] = (long)pvVar23 + 0xc;\n                psVar35[4] = sVar18;\n                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));\n                if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }\n                if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }\n                if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }\n                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                psVar35 = psVar35 + 9;\n                pvVar23 = (void *)(uVar45 + (long)pvVar23);\n              }" ({ "{") (expression_statement "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);" (assignment_expression "lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" (identifier "lVar24") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(pvVar23)" (( "(") (identifier "pvVar23") () ")")))) (; ";")) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar41 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar41 = lVar24 + 3U & 0xfffffffffffffffc" (identifier "uVar41") (= "=") (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" (identifier "lVar24") (+ "+") (number_literal "3U")) (& "&") (number_literal "0xfffffffffffffffc"))) (; ";")) (expression_statement "*psVar35 = uVar41;" (assignment_expression "*psVar35 = uVar41" (pointer_expression "*psVar35" (* "*") (identifier "psVar35")) (= "=") (identifier "uVar41")) (; ";")) (expression_statement "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);" (assignment_expression "lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" (identifier "lVar24") (= "=") (call_expression "(**(code **)(lVar16 + 0x38))((long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x38)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x38)" (* "*") (cast_expression "(code **)(lVar16 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "((long)pvVar23 + 4)" (( "(") (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar29 = lVar24 + 3U & 0xfffffffffffffffc;" (assignment_expression "uVar29 = lVar24 + 3U & 0xfffffffffffffffc" (identifier "uVar29") (= "=") (binary_expression "lVar24 + 3U & 0xfffffffffffffffc" (binary_expression "lVar24 + 3U" (identifier "lVar24") (+ "+") (number_literal "3U")) (& "&") (number_literal "0xfffffffffffffffc"))) (; ";")) (expression_statement "psVar35[1] = uVar29;" (assignment_expression "psVar35[1] = uVar29" (subscript_expression "psVar35[1]" (identifier "psVar35") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "sVar17 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar17 = (**(code **)(lVar16 + 0x38))()" (identifier "sVar17") (= "=") (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x38)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x38)" (* "*") (cast_expression "(code **)(lVar16 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "psVar35[2] = sVar17;" (assignment_expression "psVar35[2] = sVar17" (subscript_expression "psVar35[2]" (identifier "psVar35") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "sVar17")) (; ";")) (if_statement "if (1 < sVar17 - 0x100) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(1 < sVar17 - 0x100)" (( "(") (binary_expression "1 < sVar17 - 0x100" (number_literal "1") (< "<") (binary_expression "sVar17 - 0x100" (identifier "sVar17") (- "-") (number_literal "0x100"))) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: wrong note type"" (" """) (string_content "corrupt GNU build attribute note: wrong note type") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "uVar45 = uVar41 + uVar29 + 0xc;" (assignment_expression "uVar45 = uVar41 + uVar29 + 0xc" (identifier "uVar45") (= "=") (binary_expression "uVar41 + uVar29 + 0xc" (binary_expression "uVar41 + uVar29" (identifier "uVar41") (+ "+") (identifier "uVar29")) (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (local_e8 < uVar45) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(local_e8 < uVar45)" (( "(") (binary_expression "local_e8 < uVar45" (identifier "local_e8") (< "<") (identifier "uVar45")) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: note too big",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: note too big"" (" """) (string_content "corrupt GNU build attribute note: note too big") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (if_statement "if (uVar41 < 2) {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(uVar41 < 2)" (( "(") (binary_expression "uVar41 < 2" (identifier "uVar41") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: name too small",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: name too small"" (" """) (string_content "corrupt GNU build attribute note: name too small") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "sVar18 = (long)pvVar23 + uVar41 + 0xc;" (assignment_expression "sVar18 = (long)pvVar23 + uVar41 + 0xc" (identifier "sVar18") (= "=") (binary_expression "(long)pvVar23 + uVar41 + 0xc" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (identifier "uVar41")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "psVar35[3] = (long)pvVar23 + 0xc;" (assignment_expression "psVar35[3] = (long)pvVar23 + 0xc" (subscript_expression "psVar35[3]" (identifier "psVar35") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "psVar35[4] = sVar18;" (assignment_expression "psVar35[4] = sVar18" (subscript_expression "psVar35[4]" (identifier "psVar35") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "sVar18")) (; ";")) (expression_statement "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));" (assignment_expression "local_e8 = local_e8 + (-0xc - (uVar41 + uVar29))" (identifier "local_e8") (= "=") (binary_expression "local_e8 + (-0xc - (uVar41 + uVar29))" (identifier "local_e8") (+ "+") (parenthesized_expression "(-0xc - (uVar41 + uVar29))" (( "(") (binary_expression "-0xc - (uVar41 + uVar29)" (number_literal "-0xc") (- "-") (parenthesized_expression "(uVar41 + uVar29)" (( "(") (binary_expression "uVar41 + uVar29" (identifier "uVar41") (+ "+") (identifier "uVar29")) () ")"))) () ")")))) (; ";")) (if_statement "if (*(char *)((long)pvVar23 + 0xc) == '$') {\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }\n                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" (if "if") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == '$')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xc) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xc)" (( "(") (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'$'" (' "'") (character "$") (' "'"))) () ")")) (compound_statement "{\n                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }\n                }" ({ "{") (if_statement "if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')) {\n                    iVar7 = iVar7 + 1;\n                  }" (if "if") (parenthesized_expression "((*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1'))" (( "(") (binary_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01') &&\n                     (*(char *)((long)pvVar23 + 0xe) == '1')" (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == '\x01')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xd) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xd)" (( "(") (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '1')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xe) == '1'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xe)" (( "(") (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    iVar7 = iVar7 + 1;\n                  }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" (else "else") (if_statement "if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" (if "if") (parenthesized_expression "((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))))" (( "(") (binary_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&\n                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A'))" (( "(") (binary_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&\n                         (*(char *)((long)pvVar23 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G'))" (( "(") (binary_expression "(4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')" (parenthesized_expression "(4 < uVar41)" (( "(") (binary_expression "4 < uVar41" (number_literal "4") (< "<") (identifier "uVar41")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xc) == 'G')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xc) == 'G'" (pointer_expression "*(char *)((long)pvVar23 + 0xc)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xc)" (( "(") (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'G'" (' "'") (character "G") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xd) == 'A')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xd) == 'A'" (pointer_expression "*(char *)((long)pvVar23 + 0xd)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xd)" (( "(") (binary_expression "(long)pvVar23 + 0xd" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))" (( "(") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01'))" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$' &&\n                         (*(char *)((long)pvVar23 + 0xf) == '\x01')" (binary_expression "*(char *)((long)pvVar23 + 0xe) == '$'" (pointer_expression "*(char *)((long)pvVar23 + 0xe)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xe)" (( "(") (binary_expression "(long)pvVar23 + 0xe" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'$'" (' "'") (character "$") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)((long)pvVar23 + 0xf) == '\x01')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0xf) == '\x01'" (pointer_expression "*(char *)((long)pvVar23 + 0xf)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xf)" (( "(") (binary_expression "(long)pvVar23 + 0xf" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xf")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }\n                }" ({ "{") (if_statement "if (*(char *)((long)pvVar23 + 0x10) == '2') {\n                    iVar11 = iVar11 + 1;\n                  }\n                  else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" (if "if") (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) == '2')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0x10) == '2'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0x10)" (( "(") (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")")) (compound_statement "{\n                    iVar11 = iVar11 + 1;\n                  }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" (else "else") (compound_statement "{\n                    if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }\n                    iVar10 = iVar10 + 1;\n                  }" ({ "{") (if_statement "if (*(char *)((long)pvVar23 + 0x10) != '3') {\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" (if "if") (parenthesized_expression "(*(char *)((long)pvVar23 + 0x10) != '3')" (( "(") (binary_expression "*(char *)((long)pvVar23 + 0x10) != '3'" (pointer_expression "*(char *)((long)pvVar23 + 0x10)" (* "*") (cast_expression "(char *)((long)pvVar23 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0x10)" (( "(") (binary_expression "(long)pvVar23 + 0x10" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (char_literal "'3'" (' "'") (character "3") (' "'"))) () ")")) (compound_statement "{\n                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );\n                      goto LAB_0010b063;\n                    }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5\n                                        )" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: unsupported version"" (" """) (string_content "corrupt GNU build attribute note: unsupported version") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))))) (if_statement "if (uVar29 == 4) {\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }\n                else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (if "if") (parenthesized_expression "(uVar29 == 4)" (( "(") (binary_expression "uVar29 == 4" (identifier "uVar29") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  sVar25 = 0xffffffffffffffff;\n                }" ({ "{") (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" (identifier "sVar18") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" (identifier "sVar25") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")) (else_clause "else if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (else "else") (if_statement "if (uVar29 < 5) {\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }\n                else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (if "if") (parenthesized_expression "(uVar29 < 5)" (( "(") (binary_expression "uVar29 < 5" (identifier "uVar29") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                  if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }\n                  sVar25 = 0;\n                  sVar18 = 0;\n                }" ({ "{") (if_statement "if (uVar29 != 0) {\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;\n                    goto LAB_0010b063;\n                  }" ({ "{") (labeled_statement "LAB_0010b046:\n                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" (statement_identifier "LAB_0010b046") (: ":") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)\n                    ;" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: bad description size",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: bad description size"" (" """) (string_content "corrupt GNU build attribute note: bad description size") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "sVar25 = 0;" (assignment_expression "sVar25 = 0" (identifier "sVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar18 = 0;" (assignment_expression "sVar18 = 0" (identifier "sVar18") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (else "else") (if_statement "if (uVar29 == 8) {\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }\n                else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (if "if") (parenthesized_expression "(uVar29 == 8)" (( "(") (binary_expression "uVar29 == 8" (identifier "uVar29") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  lVar16 = *(long *)(param_1 + 8);\n                  if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }\n                }" ({ "{") (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }\n                  else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" (if "if") (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" (( "(") (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" (( "(") (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" (* "*") (cast_expression "(int *)(lVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (( "(") (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" (( "(") (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" (* "*") (cast_expression "(long *)(param_1 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x20))();\n                    sVar25 = 0xffffffffffffffff;\n                  }" ({ "{") (expression_statement "sVar18 = (**(code **)(lVar16 + 0x20))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x20))()" (identifier "sVar18") (= "=") (call_expression "(**(code **)(lVar16 + 0x20))()" (parenthesized_expression "(**(code **)(lVar16 + 0x20))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x20)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x20)" (* "*") (cast_expression "(code **)(lVar16 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "sVar25 = 0xffffffffffffffff;" (assignment_expression "sVar25 = 0xffffffffffffffff" (identifier "sVar25") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")) (else_clause "else {\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" (else "else") (compound_statement "{\n                    sVar18 = (**(code **)(lVar16 + 0x38))();\n                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();\n                  }" ({ "{") (expression_statement "sVar18 = (**(code **)(lVar16 + 0x38))();" (assignment_expression "sVar18 = (**(code **)(lVar16 + 0x38))()" (identifier "sVar18") (= "=") (call_expression "(**(code **)(lVar16 + 0x38))()" (parenthesized_expression "(**(code **)(lVar16 + 0x38))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x38)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x38)" (* "*") (cast_expression "(code **)(lVar16 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))()" (identifier "sVar25") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x38)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x38)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x38" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" (else "else") (compound_statement "{\n                  if (uVar29 != 0x10) goto LAB_0010b046;\n                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);\n                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();\n                }" ({ "{") (if_statement "if (uVar29 != 0x10) goto LAB_0010b046;" (if "if") (parenthesized_expression "(uVar29 != 0x10)" (( "(") (binary_expression "uVar29 != 0x10" (identifier "uVar29") (!= "!=") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0010b046;" (goto "goto") (statement_identifier "LAB_0010b046") (; ";"))) (expression_statement "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);" (assignment_expression "sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" (identifier "sVar18") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(sVar18)" (( "(") (identifier "sVar18") () ")")))) (; ";")) (expression_statement "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();" (assignment_expression "sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))()" (identifier "sVar25") (= "=") (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x20))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x20)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x20)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x20)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x20" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))))))) (if_statement "if (sVar17 == 0x100) {\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }\n                else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" (if "if") (parenthesized_expression "(sVar17 == 0x100)" (( "(") (binary_expression "sVar17 == 0x100" (identifier "sVar17") (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_c8 = sVar18;\n                  local_c0 = sVar25;\n                }" ({ "{") (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_c8;\n                  }" (if "if") (parenthesized_expression "(sVar18 == 0)" (( "(") (binary_expression "sVar18 == 0" (identifier "sVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    sVar18 = local_c8;\n                  }" ({ "{") (expression_statement "sVar18 = local_c8;" (assignment_expression "sVar18 = local_c8" (identifier "sVar18") (= "=") (identifier "local_c8")) (; ";")) (} "}"))) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_c0;\n                  }" (if "if") (parenthesized_expression "(sVar25 == 0)" (( "(") (binary_expression "sVar25 == 0" (identifier "sVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    sVar25 = local_c0;\n                  }" ({ "{") (expression_statement "sVar25 = local_c0;" (assignment_expression "sVar25 = local_c0" (identifier "sVar25") (= "=") (identifier "local_c0")) (; ";")) (} "}"))) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" (identifier "psVar35") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "sVar18")) (; ";")) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" (identifier "psVar35") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar25")) (; ";")) (expression_statement "local_c8 = sVar18;" (assignment_expression "local_c8 = sVar18" (identifier "local_c8") (= "=") (identifier "sVar18")) (; ";")) (expression_statement "local_c0 = sVar25;" (assignment_expression "local_c0 = sVar25" (identifier "local_c0") (= "=") (identifier "sVar25")) (; ";")) (} "}")) (else_clause "else {\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" (else "else") (compound_statement "{\n                  if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }\n                  if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }\n                  psVar35[6] = sVar18;\n                  psVar35[7] = sVar25;\n                  local_b8 = sVar18;\n                  local_b0 = sVar25;\n                }" ({ "{") (if_statement "if (sVar18 == 0) {\n                    sVar18 = local_b8;\n                  }" (if "if") (parenthesized_expression "(sVar18 == 0)" (( "(") (binary_expression "sVar18 == 0" (identifier "sVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    sVar18 = local_b8;\n                  }" ({ "{") (expression_statement "sVar18 = local_b8;" (assignment_expression "sVar18 = local_b8" (identifier "sVar18") (= "=") (identifier "local_b8")) (; ";")) (} "}"))) (if_statement "if (sVar25 == 0) {\n                    sVar25 = local_b0;\n                  }" (if "if") (parenthesized_expression "(sVar25 == 0)" (( "(") (binary_expression "sVar25 == 0" (identifier "sVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    sVar25 = local_b0;\n                  }" ({ "{") (expression_statement "sVar25 = local_b0;" (assignment_expression "sVar25 = local_b0" (identifier "sVar25") (= "=") (identifier "local_b0")) (; ";")) (} "}"))) (expression_statement "psVar35[6] = sVar18;" (assignment_expression "psVar35[6] = sVar18" (subscript_expression "psVar35[6]" (identifier "psVar35") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "sVar18")) (; ";")) (expression_statement "psVar35[7] = sVar25;" (assignment_expression "psVar35[7] = sVar25" (subscript_expression "psVar35[7]" (identifier "psVar35") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar25")) (; ";")) (expression_statement "local_b8 = sVar18;" (assignment_expression "local_b8 = sVar18" (identifier "local_b8") (= "=") (identifier "sVar18")) (; ";")) (expression_statement "local_b0 = sVar25;" (assignment_expression "local_b0 = sVar25" (identifier "local_b0") (= "=") (identifier "sVar25")) (; ";")) (} "}")))) (if_statement "if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(*(char *)((psVar35[3] - 1) + *psVar35) != '\0')" (( "(") (binary_expression "*(char *)((psVar35[3] - 1) + *psVar35) != '\0'" (pointer_expression "*(char *)((psVar35[3] - 1) + *psVar35)" (* "*") (cast_expression "(char *)((psVar35[3] - 1) + *psVar35)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((psVar35[3] - 1) + *psVar35)" (( "(") (binary_expression "(psVar35[3] - 1) + *psVar35" (parenthesized_expression "(psVar35[3] - 1)" (( "(") (binary_expression "psVar35[3] - 1" (subscript_expression "psVar35[3]" (identifier "psVar35") ([ "[") (number_literal "3") (] "]")) (- "-") (number_literal "1")) () ")")) (+ "+") (pointer_expression "*psVar35" (* "*") (identifier "psVar35"))) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5\n                                    )" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" (" """) (string_content "corrupt GNU build attribute note: name not NUL terminated") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "psVar35 = psVar35 + 9;" (assignment_expression "psVar35 = psVar35 + 9" (identifier "psVar35") (= "=") (binary_expression "psVar35 + 9" (identifier "psVar35") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "pvVar23 = (void *)(uVar45 + (long)pvVar23);" (assignment_expression "pvVar23 = (void *)(uVar45 + (long)pvVar23)" (identifier "pvVar23") (= "=") (cast_expression "(void *)(uVar45 + (long)pvVar23)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar45 + (long)pvVar23)" (( "(") (binary_expression "uVar45 + (long)pvVar23" (identifier "uVar45") (+ "+") (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (local_e8 == 0) {\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }\n              else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" (if "if") (parenthesized_expression "(local_e8 == 0)" (( "(") (binary_expression "local_e8 == 0" (identifier "local_e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }\n                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;\n                uVar28 = -(uint)(iVar7 == 0) & 2;\n                lVar16 = (long)(int)(uVar28 + 1);\n                if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }\n                iVar7 = uVar28 + 2;\n                bVar49 = false;\n                lVar24 = (long)iVar7;\n                psVar47 = local_110;\nLAB_0010b255:\n                psVar6 = psVar47;\n                psVar47 = psVar6 + 9;\n                if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }\n                if (!bVar49) goto LAB_0010b098;\n                pvVar26 = (void *)xmalloc(uVar21);\n                sVar17 = 0;\n                local_f0 = __dest_00;\n                pvVar23 = pvVar26;\n                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }\n                sVar17 = (long)pvVar23 - (long)pvVar26;\n                memcpy(__dest_00,pvVar26,sVar17);\n                free(pvVar26);\n                free(local_110);\n                DAT_0012cb10 = sVar17;\n                if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }\n              }" ({ "{") (if_statement "if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(iVar7 == 0 && (iVar11 == 0 && iVar10 == 0))" (( "(") (binary_expression "iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)" (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar11 == 0 && iVar10 == 0)" (( "(") (binary_expression "iVar11 == 0 && iVar10 == 0" (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    );" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5\n                                    )" (( "(") (number_literal "0") (, ",") (string_literal ""bad GNU build attribute notes: no known versions detected"" (" """) (string_content "bad GNU build attribute notes: no known versions detected") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (if_statement "if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))) {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0))))" (( "(") (binary_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||\n                   ((iVar11 != 0 && (iVar10 != 0)))" (parenthesized_expression "((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0))" (( "(") (binary_expression "(iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 != 0 || iVar10 != 0)" (( "(") (binary_expression "iVar11 != 0 || iVar10 != 0" (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar11 != 0 && (iVar10 != 0)))" (( "(") (parenthesized_expression "(iVar11 != 0 && (iVar10 != 0))" (( "(") (binary_expression "iVar11 != 0 && (iVar10 != 0)" (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: multiple different versions",\n                                     5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad GNU build attribute notes: multiple different versions"" (" """) (string_content "bad GNU build attribute notes: multiple different versions") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (if_statement "if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;" (if "if") (parenthesized_expression "((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1))" (( "(") (binary_expression "(iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)" (parenthesized_expression "(iVar7 == 1 || iVar11 == 1)" (( "(") (binary_expression "iVar7 == 1 || iVar11 == 1" (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1")) (|| "||") (binary_expression "iVar11 == 1" (identifier "iVar11") (== "==") (number_literal "1"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 == 1)" (( "(") (binary_expression "iVar10 == 1" (identifier "iVar10") (== "==") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_0010b098;" (goto "goto") (statement_identifier "LAB_0010b098") (; ";"))) (expression_statement "uVar28 = -(uint)(iVar7 == 0) & 2;" (assignment_expression "uVar28 = -(uint)(iVar7 == 0) & 2" (identifier "uVar28") (= "=") (binary_expression "-(uint)(iVar7 == 0) & 2" (unary_expression "-(uint)(iVar7 == 0)" (- "-") (call_expression "(uint)(iVar7 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "2"))) (; ";")) (expression_statement "lVar16 = (long)(int)(uVar28 + 1);" (assignment_expression "lVar16 = (long)(int)(uVar28 + 1)" (identifier "lVar16") (= "=") (cast_expression "(long)(int)(uVar28 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(uVar28 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar28 + 1)" (( "(") (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (*(char *)(local_110[3] + lVar16) != '\x01') {\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" (if "if") (parenthesized_expression "(*(char *)(local_110[3] + lVar16) != '\x01')" (( "(") (binary_expression "*(char *)(local_110[3] + lVar16) != '\x01'" (pointer_expression "*(char *)(local_110[3] + lVar16)" (* "*") (cast_expression "(char *)(local_110[3] + lVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_110[3] + lVar16)" (( "(") (binary_expression "local_110[3] + lVar16" (subscript_expression "local_110[3]" (identifier "local_110") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "lVar16")) () ")")))) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);\n                  goto LAB_0010b063;\n                }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5);" (assignment_expression "lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: first note not version note",\n                                     5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad GNU build attribute notes: first note not version note"" (" """) (string_content "bad GNU build attribute notes: first note not version note") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_0010b063;" (goto "goto") (statement_identifier "LAB_0010b063") (; ";")) (} "}"))) (expression_statement "iVar7 = uVar28 + 2;" (assignment_expression "iVar7 = uVar28 + 2" (identifier "iVar7") (= "=") (binary_expression "uVar28 + 2" (identifier "uVar28") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar49 = false;" (assignment_expression "bVar49 = false" (identifier "bVar49") (= "=") (false "false")) (; ";")) (expression_statement "lVar24 = (long)iVar7;" (assignment_expression "lVar24 = (long)iVar7" (identifier "lVar24") (= "=") (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7"))) (; ";")) (expression_statement "psVar47 = local_110;" (assignment_expression "psVar47 = local_110" (identifier "psVar47") (= "=") (identifier "local_110")) (; ";")) (labeled_statement "LAB_0010b255:\n                psVar6 = psVar47;" (statement_identifier "LAB_0010b255") (: ":") (expression_statement "psVar6 = psVar47;" (assignment_expression "psVar6 = psVar47" (identifier "psVar6") (= "=") (identifier "psVar47")) (; ";"))) (expression_statement "psVar47 = psVar6 + 9;" (assignment_expression "psVar47 = psVar6 + 9" (identifier "psVar47") (= "=") (binary_expression "psVar6 + 9" (identifier "psVar6") (+ "+") (number_literal "9"))) (; ";")) (if_statement "if (psVar47 < psVar35) {\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" (if "if") (parenthesized_expression "(psVar47 < psVar35)" (( "(") (binary_expression "psVar47 < psVar35" (identifier "psVar47") (< "<") (identifier "psVar35")) () ")")) (compound_statement "{\n                  if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }\n                  goto LAB_0010b255;\n                }" ({ "{") (if_statement "if (psVar6[0xb] == 0x100) {\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(psVar6[0xb] == 0x100)" (( "(") (binary_expression "psVar6[0xb] == 0x100" (subscript_expression "psVar6[0xb]" (identifier "psVar6") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n                    pvVar23 = (void *)psVar6[0xc];\n                    psVar36 = (size_t *)0x0;\n                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }\n                  }" ({ "{") (expression_statement "pvVar23 = (void *)psVar6[0xc];" (assignment_expression "pvVar23 = (void *)psVar6[0xc]" (identifier "pvVar23") (= "=") (cast_expression "(void *)psVar6[0xc]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar6[0xc]" (identifier "psVar6") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "psVar36 = (size_t *)0x0;" (assignment_expression "psVar36 = (size_t *)0x0" (identifier "psVar36") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" (for "for") (( "(") (assignment_expression "psVar31 = psVar6" (identifier "psVar31") (= "=") (identifier "psVar6")) (; ";") (binary_expression "local_110 <= psVar31" (identifier "local_110") (<= "<=") (identifier "psVar31")) (; ";") (assignment_expression "psVar31 = psVar31 + -9" (identifier "psVar31") (= "=") (binary_expression "psVar31 + -9" (identifier "psVar31") (+ "+") (number_literal "-9"))) () ")") (compound_statement "{\n                      pvVar26 = (void *)psVar31[3];\n                      psVar37 = psVar36;\n                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }\n                    }" ({ "{") (expression_statement "pvVar26 = (void *)psVar31[3];" (assignment_expression "pvVar26 = (void *)psVar31[3]" (identifier "pvVar26") (= "=") (cast_expression "(void *)psVar31[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar31[3]" (identifier "psVar31") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "psVar37 = psVar36;" (assignment_expression "psVar37 = psVar36" (identifier "psVar37") (= "=") (identifier "psVar36")) (; ";")) (if_statement "if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))) {\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" (if "if") (parenthesized_expression "((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))))" (( "(") (binary_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&\n                         ((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" (parenthesized_expression "(((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101))" (( "(") (binary_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||\n                          (psVar37 = psVar31, psVar31[2] != 0x101)" (parenthesized_expression "((psVar36 != (size_t *)0x0) || (psVar31[1] == 0))" (( "(") (binary_expression "(psVar36 != (size_t *)0x0) || (psVar31[1] == 0)" (parenthesized_expression "(psVar36 != (size_t *)0x0)" (( "(") (binary_expression "psVar36 != (size_t *)0x0" (identifier "psVar36") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(psVar31[1] == 0)" (( "(") (binary_expression "psVar31[1] == 0" (subscript_expression "psVar31[1]" (identifier "psVar31") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(psVar37 = psVar31, psVar31[2] != 0x101)" (( "(") (comma_expression "psVar37 = psVar31, psVar31[2] != 0x101" (assignment_expression "psVar37 = psVar31" (identifier "psVar37") (= "=") (identifier "psVar31")) (, ",") (binary_expression "psVar31[2] != 0x101" (subscript_expression "psVar31[2]" (identifier "psVar31") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x101"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)))" (( "(") (parenthesized_expression "(psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100))" (( "(") (comma_expression "psVar36 = psVar37,\n                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (assignment_expression "psVar36 = psVar37" (identifier "psVar36") (= "=") (identifier "psVar37")) (, ",") (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&\n                          (psVar31[2] == 0x100)" (binary_expression "*(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16)" (pointer_expression "*(char *)((long)pvVar23 + lVar16)" (* "*") (cast_expression "(char *)((long)pvVar23 + lVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + lVar16)" (( "(") (binary_expression "(long)pvVar23 + lVar16" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (identifier "lVar16")) () ")")))) (== "==") (pointer_expression "*(char *)((long)pvVar26 + lVar16)" (* "*") (cast_expression "(char *)((long)pvVar26 + lVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar26 + lVar16)" (( "(") (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")) (+ "+") (identifier "lVar16")) () ")"))))) (&& "&&") (parenthesized_expression "(psVar31[2] == 0x100)" (( "(") (binary_expression "psVar31[2] == 0x100" (subscript_expression "psVar31[2]" (identifier "psVar31") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x100")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }\n                        uVar29 = 0;\n                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        sVar17 = *psVar31;\n                        uVar45 = 0;\n                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }\n                        uVar27 = 0;\n                        uVar29 = uVar29 + uVar45;\n                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }\n                        if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }\n                      }" ({ "{") (if_statement "if (*(char *)((long)pvVar26 + lVar16) != '\x04') {\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" (if "if") (parenthesized_expression "(*(char *)((long)pvVar26 + lVar16) != '\x04')" (( "(") (binary_expression "*(char *)((long)pvVar26 + lVar16) != '\x04'" (pointer_expression "*(char *)((long)pvVar26 + lVar16)" (* "*") (cast_expression "(char *)((long)pvVar26 + lVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar26 + lVar16)" (( "(") (binary_expression "(long)pvVar26 + lVar16" (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")) (+ "+") (identifier "lVar16")) () ")")))) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                          if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }\n                          break;\n                        }" ({ "{") (if_statement "if ((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }\n                          else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" (if "if") (parenthesized_expression "((((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))))" (( "(") (binary_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&\n                             ((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" (parenthesized_expression "(((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))))" (( "(") (binary_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&\n                              ((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" (parenthesized_expression "((*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0))" (( "(") (binary_expression "(*psVar31 == *psVar47) &&\n                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" (parenthesized_expression "(*psVar31 == *psVar47)" (( "(") (binary_expression "*psVar31 == *psVar47" (pointer_expression "*psVar31" (* "*") (identifier "psVar31")) (== "==") (pointer_expression "*psVar47" (* "*") (identifier "psVar47"))) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)" (( "(") (comma_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0" (assignment_expression "iVar11 = memcmp(pvVar26,pvVar23,*psVar31)" (identifier "iVar11") (= "=") (call_expression "memcmp(pvVar26,pvVar23,*psVar31)" (identifier "memcmp") (argument_list "(pvVar26,pvVar23,*psVar31)" (( "(") (identifier "pvVar26") (, ",") (identifier "pvVar23") (, ",") (pointer_expression "*psVar31" (* "*") (identifier "psVar31")) () ")")))) (, ",") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)))" (( "(") (parenthesized_expression "(uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0))" (( "(") (comma_expression "uVar29 = psVar31[7], uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (assignment_expression "uVar29 = psVar31[7]" (identifier "uVar29") (= "=") (subscript_expression "psVar31[7]" (identifier "psVar31") ([ "[") (number_literal "7") (] "]"))) (, ",") (binary_expression "uVar29 != 0 &&\n                               (uVar41 = psVar6[0x10], uVar41 != 0)" (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(uVar41 = psVar6[0x10], uVar41 != 0)" (( "(") (comma_expression "uVar41 = psVar6[0x10], uVar41 != 0" (assignment_expression "uVar41 = psVar6[0x10]" (identifier "uVar41") (= "=") (subscript_expression "psVar6[0x10]" (identifier "psVar6") ([ "[") (number_literal "0x10") (] "]"))) (, ",") (binary_expression "uVar41 != 0" (identifier "uVar41") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))" (( "(") (parenthesized_expression "(0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)))" (( "(") (binary_expression "0xfffffffffffffff0 < uVar29 ||\n                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" (binary_expression "0xfffffffffffffff0 < uVar29" (number_literal "0xfffffffffffffff0") (< "<") (identifier "uVar29")) (|| "||") (parenthesized_expression "(psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))" (( "(") (binary_expression "psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0)" (subscript_expression "psVar6[0xf]" (identifier "psVar6") ([ "[") (number_literal "0xf") (] "]")) (<= "<=") (parenthesized_expression "(uVar29 + 0xf & 0xfffffffffffffff0)" (( "(") (binary_expression "uVar29 + 0xf & 0xfffffffffffffff0" (binary_expression "uVar29 + 0xf" (identifier "uVar29") (+ "+") (number_literal "0xf")) (& "&") (number_literal "0xfffffffffffffff0")) () ")"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                            psVar6[0xb] = 0;\n                            if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }\n                            bVar49 = true;\n                            if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }\n                          }" ({ "{") (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" (identifier "psVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar29 < uVar41) {\n                              psVar31[7] = uVar41;\n                            }" (if "if") (parenthesized_expression "(uVar29 < uVar41)" (( "(") (binary_expression "uVar29 < uVar41" (identifier "uVar29") (< "<") (identifier "uVar41")) () ")")) (compound_statement "{\n                              psVar31[7] = uVar41;\n                            }" ({ "{") (expression_statement "psVar31[7] = uVar41;" (assignment_expression "psVar31[7] = uVar41" (subscript_expression "psVar31[7]" (identifier "psVar31") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar41")) (; ";")) (} "}"))) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" (identifier "bVar49") (= "=") (true "true")) (; ";")) (if_statement "if (iVar10 != 0) {\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              *(undefined4 *)(psVar31 + 8) = 1;\n                            }" ({ "{") (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" (* "*") (cast_expression "(undefined4 *)(psVar31 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar31 + 8)" (( "(") (binary_expression "psVar31 + 8" (identifier "psVar31") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" (else "else") (if_statement "if (iVar10 == 0) {\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }\n                          else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }\n                          }" ({ "{") (if_statement "if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)) {\n                              psVar37[2] = 0x100;\n                            }" (if "if") (parenthesized_expression "(((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0))" (( "(") (binary_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&\n                               (psVar37[2] == 0)" (parenthesized_expression "((psVar6[10] == 0) && (psVar37 != (size_t *)0x0))" (( "(") (binary_expression "(psVar6[10] == 0) && (psVar37 != (size_t *)0x0)" (parenthesized_expression "(psVar6[10] == 0)" (( "(") (binary_expression "psVar6[10] == 0" (subscript_expression "psVar6[10]" (identifier "psVar6") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(psVar37 != (size_t *)0x0)" (( "(") (binary_expression "psVar37 != (size_t *)0x0" (identifier "psVar37") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(psVar37[2] == 0)" (( "(") (binary_expression "psVar37[2] == 0" (subscript_expression "psVar37[2]" (identifier "psVar37") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                              psVar37[2] = 0x100;\n                            }" ({ "{") (expression_statement "psVar37[2] = 0x100;" (assignment_expression "psVar37[2] = 0x100" (subscript_expression "psVar37[2]" (identifier "psVar37") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x100")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" (else "else") (compound_statement "{\n                            *(undefined4 *)(psVar6 + 0x11) = 1;\n                            psVar6[0xb] = 0x101;\n                            *(undefined4 *)(psVar31 + 8) = 1;\n                            psVar31[2] = 0x101;\n                          }" ({ "{") (expression_statement "*(undefined4 *)(psVar6 + 0x11) = 1;" (assignment_expression "*(undefined4 *)(psVar6 + 0x11) = 1" (pointer_expression "*(undefined4 *)(psVar6 + 0x11)" (* "*") (cast_expression "(undefined4 *)(psVar6 + 0x11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar6 + 0x11)" (( "(") (binary_expression "psVar6 + 0x11" (identifier "psVar6") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "psVar6[0xb] = 0x101;" (assignment_expression "psVar6[0xb] = 0x101" (subscript_expression "psVar6[0xb]" (identifier "psVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0x101")) (; ";")) (expression_statement "*(undefined4 *)(psVar31 + 8) = 1;" (assignment_expression "*(undefined4 *)(psVar31 + 8) = 1" (pointer_expression "*(undefined4 *)(psVar31 + 8)" (* "*") (cast_expression "(undefined4 *)(psVar31 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar31 + 8)" (( "(") (binary_expression "psVar31 + 8" (identifier "psVar31") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "psVar31[2] = 0x101;" (assignment_expression "psVar31[2] = 0x101" (subscript_expression "psVar31[2]" (identifier "psVar31") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x101")) (; ";")) (} "}")))))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (for_statement "for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;\n                            uVar41 = uVar41 + 1) {\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" (for "for") (( "(") (assignment_expression "uVar41 = 0" (identifier "uVar41") (= "=") (number_literal "0")) (; ";") (binary_expression "(uint)((int)*psVar47 - iVar7) != uVar41" (call_expression "(uint)((int)*psVar47 - iVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)*psVar47 - iVar7)" (( "(") (binary_expression "(int)*psVar47 - iVar7" (cast_expression "(int)*psVar47" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*psVar47" (* "*") (identifier "psVar47"))) (- "-") (identifier "iVar7")) () ")"))) (!= "!=") (identifier "uVar41")) (; ";") (assignment_expression "uVar41 = uVar41 + 1" (identifier "uVar41") (= "=") (binary_expression "uVar41 + 1" (identifier "uVar41") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);\n                        }" ({ "{") (expression_statement "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" (identifier "uVar29") (= "=") (binary_expression "uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" (identifier "uVar29") (| "|") (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<\n                                            ((char)uVar41 * '\b' & 0x3fU)" (binary_expression "(ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(byte *)((long)pvVar23 + uVar41 + lVar24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + uVar41 + lVar24)" (( "(") (binary_expression "(long)pvVar23 + uVar41 + lVar24" (binary_expression "(long)pvVar23 + uVar41" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (identifier "uVar41")) (+ "+") (identifier "lVar24")) () ")")))) (<< "<<") (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" (( "(") (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar41")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (& "&") (number_literal "0x3fU")) () ")"))))) (; ";")) (} "}"))) (expression_statement "sVar17 = *psVar31;" (assignment_expression "sVar17 = *psVar31" (identifier "sVar17") (= "=") (pointer_expression "*psVar31" (* "*") (identifier "psVar31"))) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (for_statement "for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)\n                        {\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" (for "for") (( "(") (assignment_expression "uVar41 = 0" (identifier "uVar41") (= "=") (number_literal "0")) (; ";") (binary_expression "(uint)((int)sVar17 - iVar7) != uVar41" (call_expression "(uint)((int)sVar17 - iVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)sVar17 - iVar7)" (( "(") (binary_expression "(int)sVar17 - iVar7" (cast_expression "(int)sVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar17")) (- "-") (identifier "iVar7")) () ")"))) (!= "!=") (identifier "uVar41")) (; ";") (assignment_expression "uVar41 = uVar41 + 1" (identifier "uVar41") (= "=") (binary_expression "uVar41 + 1" (identifier "uVar41") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);\n                        }" ({ "{") (expression_statement "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);" (assignment_expression "uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" (identifier "uVar45") (= "=") (binary_expression "uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" (identifier "uVar45") (| "|") (binary_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU)" (subscript_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))\n                                                         [uVar41]" (call_expression "(ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((undefined1 *)((long)pvVar26 + lVar24))" (( "(") (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar26 + lVar24)" (( "(") (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")) (+ "+") (identifier "lVar24")) () ")"))) () ")"))) ([ "[") (identifier "uVar41") (] "]")) (<< "<<") (parenthesized_expression "((char)uVar41 * '\b' & 0x3fU)" (( "(") (binary_expression "(char)uVar41 * '\b' & 0x3fU" (binary_expression "(char)uVar41 * '\b'" (cast_expression "(char)uVar41" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar41")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (& "&") (number_literal "0x3fU")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar29 = uVar29 + uVar45;" (assignment_expression "uVar29 = uVar29 + uVar45" (identifier "uVar29") (= "=") (binary_expression "uVar29 + uVar45" (identifier "uVar29") (+ "+") (identifier "uVar45"))) (; ";")) (for_statement "for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" (for "for") (( "(") (assignment_expression "uVar41 = uVar29" (identifier "uVar41") (= "=") (identifier "uVar29")) (; ";") (binary_expression "uVar41 != 0" (identifier "uVar41") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar41 = uVar41 >> 8" (identifier "uVar41") (= "=") (binary_expression "uVar41 >> 8" (identifier "uVar41") (>> ">>") (number_literal "8"))) () ")") (compound_statement "{\n                          uVar27 = (ulong)((int)uVar27 + 1);\n                        }" ({ "{") (expression_statement "uVar27 = (ulong)((int)uVar27 + 1);" (assignment_expression "uVar27 = (ulong)((int)uVar27 + 1)" (identifier "uVar27") (= "=") (call_expression "(ulong)((int)uVar27 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar27 + 1)" (( "(") (binary_expression "(int)uVar27 + 1" (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (if_statement "if (uVar27 < sVar17 - lVar24) {\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" (if "if") (parenthesized_expression "(uVar27 < sVar17 - lVar24)" (( "(") (binary_expression "uVar27 < sVar17 - lVar24" (identifier "uVar27") (< "<") (binary_expression "sVar17 - lVar24" (identifier "sVar17") (- "-") (identifier "lVar24"))) () ")")) (compound_statement "{\n                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);\n                          goto LAB_0010b3bc;\n                        }" ({ "{") (expression_statement "puVar30 = (undefined1 *)((long)pvVar26 + lVar24);" (assignment_expression "puVar30 = (undefined1 *)((long)pvVar26 + lVar24)" (identifier "puVar30") (= "=") (cast_expression "(undefined1 *)((long)pvVar26 + lVar24)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar26 + lVar24)" (( "(") (binary_expression "(long)pvVar26 + lVar24" (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")) (+ "+") (identifier "lVar24")) () ")")))) (; ";")) (goto_statement "goto LAB_0010b3bc;" (goto "goto") (statement_identifier "LAB_0010b3bc") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0010b255;" (goto "goto") (statement_identifier "LAB_0010b255") (; ";")) (} "}"))) (if_statement "if (!bVar49) goto LAB_0010b098;" (if "if") (parenthesized_expression "(!bVar49)" (( "(") (unary_expression "!bVar49" (! "!") (identifier "bVar49")) () ")")) (goto_statement "goto LAB_0010b098;" (goto "goto") (statement_identifier "LAB_0010b098") (; ";"))) (expression_statement "pvVar26 = (void *)xmalloc(uVar21);" (assignment_expression "pvVar26 = (void *)xmalloc(uVar21)" (identifier "pvVar26") (= "=") (cast_expression "(void *)xmalloc(uVar21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar21)" (identifier "xmalloc") (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")"))))) (; ";")) (expression_statement "sVar17 = 0;" (assignment_expression "sVar17 = 0" (identifier "sVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f0 = __dest_00;" (assignment_expression "local_f0 = __dest_00" (identifier "local_f0") (= "=") (identifier "__dest_00")) (; ";")) (expression_statement "pvVar23 = pvVar26;" (assignment_expression "pvVar23 = pvVar26" (identifier "pvVar23") (= "=") (identifier "pvVar26")) (; ";")) (for_statement "for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" (for "for") (( "(") (assignment_expression "psVar47 = local_110" (identifier "psVar47") (= "=") (identifier "local_110")) (; ";") (binary_expression "psVar47 < psVar35" (identifier "psVar47") (< "<") (identifier "psVar35")) (; ";") (assignment_expression "psVar47 = psVar47 + 9" (identifier "psVar47") (= "=") (binary_expression "psVar47 + 9" (identifier "psVar47") (+ "+") (number_literal "9"))) () ")") (compound_statement "{\n                  sVar25 = *psVar47;\n                  sVar5 = psVar47[2];\n                  sVar18 = psVar47[1] + sVar25 + 0xc;\n                  pvVar48 = pvVar23;\n                  if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }\n                  local_f0 = (void *)((long)local_f0 + sVar18);\n                  pvVar23 = pvVar48;\n                }" ({ "{") (expression_statement "sVar25 = *psVar47;" (assignment_expression "sVar25 = *psVar47" (identifier "sVar25") (= "=") (pointer_expression "*psVar47" (* "*") (identifier "psVar47"))) (; ";")) (expression_statement "sVar5 = psVar47[2];" (assignment_expression "sVar5 = psVar47[2]" (identifier "sVar5") (= "=") (subscript_expression "psVar47[2]" (identifier "psVar47") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "sVar18 = psVar47[1] + sVar25 + 0xc;" (assignment_expression "sVar18 = psVar47[1] + sVar25 + 0xc" (identifier "sVar18") (= "=") (binary_expression "psVar47[1] + sVar25 + 0xc" (binary_expression "psVar47[1] + sVar25" (subscript_expression "psVar47[1]" (identifier "psVar47") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "sVar25")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pvVar48 = pvVar23;" (assignment_expression "pvVar48 = pvVar23" (identifier "pvVar48") (= "=") (identifier "pvVar23")) (; ";")) (if_statement "if (sVar5 != 0) {\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" (if "if") (parenthesized_expression "(sVar5 != 0)" (( "(") (binary_expression "sVar5 != 0" (identifier "sVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }\n                    local_e8 = psVar47[6];\n                    sVar17 = psVar47[7];\n                  }" ({ "{") (if_statement "if ((int)psVar47[8] == 0) {\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }\n                    else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "((int)psVar47[8] == 0)" (( "(") (binary_expression "(int)psVar47[8] == 0" (cast_expression "(int)psVar47[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "psVar47[8]" (identifier "psVar47") ([ "[") (number_literal "8") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      memcpy(pvVar23,local_f0,sVar18);\n                      pvVar48 = (void *)((long)pvVar23 + sVar18);\n                    }" ({ "{") (expression_statement "memcpy(pvVar23,local_f0,sVar18);" (call_expression "memcpy(pvVar23,local_f0,sVar18)" (identifier "memcpy") (argument_list "(pvVar23,local_f0,sVar18)" (( "(") (identifier "pvVar23") (, ",") (identifier "local_f0") (, ",") (identifier "sVar18") () ")"))) (; ";")) (expression_statement "pvVar48 = (void *)((long)pvVar23 + sVar18);" (assignment_expression "pvVar48 = (void *)((long)pvVar23 + sVar18)" (identifier "pvVar48") (= "=") (cast_expression "(void *)((long)pvVar23 + sVar18)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + sVar18)" (( "(") (binary_expression "(long)pvVar23 + sVar18" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (identifier "sVar18")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" (else "else") (compound_statement "{\n                      sVar3 = psVar47[6];\n                      __dest = (void *)((long)pvVar23 + 0xc);\n                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);\n                      pvVar48 = (void *)((long)__dest + sVar25);\n                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }\n                    }" ({ "{") (expression_statement "sVar3 = psVar47[6];" (assignment_expression "sVar3 = psVar47[6]" (identifier "sVar3") (= "=") (subscript_expression "psVar47[6]" (identifier "psVar47") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "__dest = (void *)((long)pvVar23 + 0xc);" (assignment_expression "__dest = (void *)((long)pvVar23 + 0xc)" (identifier "__dest") (= "=") (cast_expression "(void *)((long)pvVar23 + 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar23 + 0xc)" (( "(") (binary_expression "(long)pvVar23 + 0xc" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);" (assignment_expression "pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "pvVar48 = (void *)((long)__dest + sVar25);" (assignment_expression "pvVar48 = (void *)((long)__dest + sVar25)" (identifier "pvVar48") (= "=") (cast_expression "(void *)((long)__dest + sVar25)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + sVar25)" (( "(") (binary_expression "(long)__dest + sVar25" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (identifier "sVar25")) () ")")))) (; ";")) (if_statement "if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }\n                      else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" (if "if") (parenthesized_expression "((sVar3 == local_e8) && (psVar47[7] == sVar17))" (( "(") (binary_expression "(sVar3 == local_e8) && (psVar47[7] == sVar17)" (parenthesized_expression "(sVar3 == local_e8)" (( "(") (binary_expression "sVar3 == local_e8" (identifier "sVar3") (== "==") (identifier "local_e8")) () ")")) (&& "&&") (parenthesized_expression "(psVar47[7] == sVar17)" (( "(") (binary_expression "psVar47[7] == sVar17" (subscript_expression "psVar47[7]" (identifier "psVar47") ([ "[") (number_literal "7") (] "]")) (== "==") (identifier "sVar17")) () ")"))) () ")")) (compound_statement "{\n                        (*pcVar4)(sVar25,pvVar23);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                      }" ({ "{") (expression_statement "(*pcVar4)(sVar25,pvVar23);" (call_expression "(*pcVar4)(sVar25,pvVar23)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(sVar25,pvVar23)" (( "(") (identifier "sVar25") (, ",") (identifier "pvVar23") () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(0,(long)pvVar23 + 4)" (( "(") (number_literal "0") (, ",") (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(sVar5,(long)pvVar23 + 8)" (( "(") (identifier "sVar5") (, ",") (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "8")) () ")"))) (; ";")) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" (identifier "memcpy") (argument_list "(__dest,(void *)psVar47[3],sVar25)" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)psVar47[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar47[3]" (identifier "psVar47") ([ "[") (number_literal "3") (] "]"))) (, ",") (identifier "sVar25") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" (else "else") (compound_statement "{\n                        (*pcVar4)();\n                        cVar42 = '\b';\n                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);\n                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);\n                        memcpy(__dest,(void *)psVar47[3],sVar25);\n                        lVar16 = *(long *)(param_1 + 8);\n                        if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }\n                      }" ({ "{") (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar42 = '\b';" (assignment_expression "cVar42 = '\b'" (identifier "cVar42") (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (if_statement "if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) == 5)" (( "(") (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';\n                        }" ({ "{") (expression_statement "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b';" (assignment_expression "cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" (identifier "cVar42") (= "=") (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +\n                                   '\b'" (binary_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b'" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (( "(") (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" (( "(") (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" (* "*") (cast_expression "(long *)(param_1 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (+ "+") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'")))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(cVar42,(long)pvVar23 + 4)" (( "(") (identifier "cVar42") (, ",") (binary_expression "(long)pvVar23 + 4" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(sVar5,(long)pvVar23 + 8)" (( "(") (identifier "sVar5") (, ",") (binary_expression "(long)pvVar23 + 8" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (+ "+") (number_literal "8")) () ")"))) (; ";")) (expression_statement "memcpy(__dest,(void *)psVar47[3],sVar25);" (call_expression "memcpy(__dest,(void *)psVar47[3],sVar25)" (identifier "memcpy") (argument_list "(__dest,(void *)psVar47[3],sVar25)" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)psVar47[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar47[3]" (identifier "psVar47") ([ "[") (number_literal "3") (] "]"))) (, ",") (identifier "sVar25") () ")"))) (; ";")) (expression_statement "lVar16 = *(long *)(param_1 + 8);" (assignment_expression "lVar16 = *(long *)(param_1 + 8)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }\n                        else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" (if "if") (parenthesized_expression "((*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'))" (( "(") (binary_expression "(*(int *)(lVar16 + 8) == 5) &&\n                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (parenthesized_expression "(*(int *)(lVar16 + 8) == 5)" (( "(") (binary_expression "*(int *)(lVar16 + 8) == 5" (pointer_expression "*(int *)(lVar16 + 8)" (* "*") (cast_expression "(int *)(lVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')" (( "(") (binary_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02'" (pointer_expression "*(char *)(*(long *)(param_1 + 0xf8) + 4)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 0xf8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xf8) + 4)" (( "(") (binary_expression "*(long *)(param_1 + 0xf8) + 4" (pointer_expression "*(long *)(param_1 + 0xf8)" (* "*") (cast_expression "(long *)(param_1 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                          (**(code **)(lVar16 + 0x30))();\n                          (**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));\n                          pvVar48 = (void *)((long)pvVar48 + 0x10);\n                        }" ({ "{") (expression_statement "(**(code **)(lVar16 + 0x30))();" (call_expression "(**(code **)(lVar16 + 0x30))()" (parenthesized_expression "(**(code **)(lVar16 + 0x30))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x30)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x30)" (* "*") (cast_expression "(code **)(lVar16 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8));" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))\n                                    (psVar47[7],(void *)((long)pvVar48 + 8))" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x30))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x30)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x30)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x30)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x30" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(psVar47[7],(void *)((long)pvVar48 + 8))" (( "(") (subscript_expression "psVar47[7]" (identifier "psVar47") ([ "[") (number_literal "7") (] "]")) (, ",") (cast_expression "(void *)((long)pvVar48 + 8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar48 + 8)" (( "(") (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar48")) (+ "+") (number_literal "8")) () ")"))) () ")"))) (; ";")) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 0x10);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 0x10)" (identifier "pvVar48") (= "=") (cast_expression "(void *)((long)pvVar48 + 0x10)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar48 + 0x10)" (( "(") (binary_expression "(long)pvVar48 + 0x10" (cast_expression "(long)pvVar48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar48")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" (else "else") (compound_statement "{\n                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);\n                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;\n                          pvVar48 = (void *)((long)pvVar48 + 8);\n                        }" ({ "{") (expression_statement "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48);" (call_expression "(**(code **)(lVar16 + 0x48))(sVar3,pvVar48)" (parenthesized_expression "(**(code **)(lVar16 + 0x48))" (( "(") (pointer_expression "**(code **)(lVar16 + 0x48)" (* "*") (pointer_expression "*(code **)(lVar16 + 0x48)" (* "*") (cast_expression "(code **)(lVar16 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x48)" (( "(") (binary_expression "lVar16 + 0x48" (identifier "lVar16") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(sVar3,pvVar48)" (( "(") (identifier "sVar3") (, ",") (identifier "pvVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)\n                          ;" (call_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)" (parenthesized_expression "(**(code **)(*(long *)(param_1 + 8) + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)(param_1 + 8) + 0x48)" (* "*") (cast_expression "(code **)(*(long *)(param_1 + 8) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x48" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(psVar47[7],(long)pvVar48 + 4)" (( "(") (subscript_expression "psVar47[7]" (identifier "psVar47") ([ "[") (number_literal "7") (] "]")) (, ",") (binary_expression "(long)pvVar48 + 4" (cast_expression "(long)pvVar48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar48")) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "pvVar48 = (void *)((long)pvVar48 + 8);" (assignment_expression "pvVar48 = (void *)((long)pvVar48 + 8)" (identifier "pvVar48") (= "=") (cast_expression "(void *)((long)pvVar48 + 8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar48 + 8)" (( "(") (binary_expression "(long)pvVar48 + 8" (cast_expression "(long)pvVar48" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar48")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (expression_statement "local_e8 = psVar47[6];" (assignment_expression "local_e8 = psVar47[6]" (identifier "local_e8") (= "=") (subscript_expression "psVar47[6]" (identifier "psVar47") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "sVar17 = psVar47[7];" (assignment_expression "sVar17 = psVar47[7]" (identifier "sVar17") (= "=") (subscript_expression "psVar47[7]" (identifier "psVar47") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_f0 = (void *)((long)local_f0 + sVar18);" (assignment_expression "local_f0 = (void *)((long)local_f0 + sVar18)" (identifier "local_f0") (= "=") (cast_expression "(void *)((long)local_f0 + sVar18)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_f0 + sVar18)" (( "(") (binary_expression "(long)local_f0 + sVar18" (cast_expression "(long)local_f0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_f0")) (+ "+") (identifier "sVar18")) () ")")))) (; ";")) (expression_statement "pvVar23 = pvVar48;" (assignment_expression "pvVar23 = pvVar48" (identifier "pvVar23") (= "=") (identifier "pvVar48")) (; ";")) (} "}"))) (expression_statement "sVar17 = (long)pvVar23 - (long)pvVar26;" (assignment_expression "sVar17 = (long)pvVar23 - (long)pvVar26" (identifier "sVar17") (= "=") (binary_expression "(long)pvVar23 - (long)pvVar26" (cast_expression "(long)pvVar23" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar23")) (- "-") (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")))) (; ";")) (expression_statement "memcpy(__dest_00,pvVar26,sVar17);" (call_expression "memcpy(__dest_00,pvVar26,sVar17)" (identifier "memcpy") (argument_list "(__dest_00,pvVar26,sVar17)" (( "(") (identifier "__dest_00") (, ",") (identifier "pvVar26") (, ",") (identifier "sVar17") () ")"))) (; ";")) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" (identifier "free") (argument_list "(pvVar26)" (( "(") (identifier "pvVar26") () ")"))) (; ";")) (expression_statement "free(local_110);" (call_expression "free(local_110)" (identifier "free") (argument_list "(local_110)" (( "(") (identifier "local_110") () ")"))) (; ";")) (expression_statement "DAT_0012cb10 = sVar17;" (assignment_expression "DAT_0012cb10 = sVar17" (identifier "DAT_0012cb10") (= "=") (identifier "sVar17")) (; ";")) (if_statement "if (uVar21 != sVar17) {\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" (if "if") (parenthesized_expression "(uVar21 != sVar17)" (( "(") (binary_expression "uVar21 != sVar17" (identifier "uVar21") (!= "!=") (identifier "sVar17")) () ")")) (compound_statement "{\n                  if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;\n                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);\n                  FUN_0011c0d0(0,param_2,lVar38,uVar12);\n                }" ({ "{") (if_statement "if ((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)) goto LAB_0010941b;" (if "if") (parenthesized_expression "((*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0))" (( "(") (binary_expression "(*(long *)(lVar38 + 0x68) != 0) &&\n                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" (parenthesized_expression "(*(long *)(lVar38 + 0x68) != 0)" (( "(") (binary_expression "*(long *)(lVar38 + 0x68) != 0" (pointer_expression "*(long *)(lVar38 + 0x68)" (* "*") (cast_expression "(long *)(lVar38 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x68)" (( "(") (binary_expression "lVar38 + 0x68" (identifier "lVar38") (+ "+") (number_literal "0x68")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0)" (( "(") (comma_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),\n                     iVar7 != 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17)" (identifier "bfd_set_section_size") (argument_list "(param_2,*(long *)(lVar38 + 0x68),sVar17)" (( "(") (identifier "param_2") (, ",") (pointer_expression "*(long *)(lVar38 + 0x68)" (* "*") (cast_expression "(long *)(lVar38 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x68)" (( "(") (binary_expression "lVar38 + 0x68" (identifier "lVar38") (+ "+") (number_literal "0x68")) () ")")))) (, ",") (identifier "sVar17") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0010941b;" (goto "goto") (statement_identifier "LAB_0010941b") (; ";"))) (expression_statement "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);" (assignment_expression "uVar12 = dcgettext(0,"warning: failed to set merged notes size",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"warning: failed to set merged notes size",5)" (identifier "dcgettext") (argument_list "(0,"warning: failed to set merged notes size",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: failed to set merged notes size"" (" """) (string_content "warning: failed to set merged notes size") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" (else "else") (compound_statement "{\n                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);\nLAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }\nLAB_0010b098:\n                free(local_110);\n              }" ({ "{") (expression_statement "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);" (assignment_expression "lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" (identifier "lVar16") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute notes: excess data at end"" (" """) (string_content "corrupt GNU build attribute notes: excess data at end") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (labeled_statement "LAB_0010b063:\n                if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" (statement_identifier "LAB_0010b063") (: ":") (if_statement "if (lVar16 != 0) {\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bfd_set_error(0x11);\n                  FUN_0011c0d0(0,param_1,lVar38,lVar16);\n                  DAT_0012cb24 = 1;\n                }" ({ "{") (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" (identifier "bfd_set_error") (argument_list "(0x11)" (( "(") (number_literal "0x11") () ")"))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,lVar16);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,lVar16)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,lVar38,lVar16)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "lVar16") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0010b098:\n                free(local_110);" (statement_identifier "LAB_0010b098") (: ":") (expression_statement "free(local_110);" (call_expression "free(local_110)" (identifier "free") (argument_list "(local_110)" (( "(") (identifier "local_110") () ")"))) (; ";"))) (} "}")))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" (identifier "free") (argument_list "(DAT_0012cb18)" (( "(") (identifier "DAT_0012cb18") () ")"))) (; ";")) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" (identifier "DAT_0012cb18") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" (identifier "DAT_0012cb20") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0012cb10 = 0;" (assignment_expression "DAT_0012cb10 = 0" (identifier "DAT_0012cb10") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (labeled_statement "LAB_0010941b:\n        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" (statement_identifier "LAB_0010941b") (: ":") (for_statement "for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)\n        {\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" (for "for") (( "(") (assignment_expression "puVar33 = DAT_0012ca98" (identifier "puVar33") (= "=") (identifier "DAT_0012ca98")) (; ";") (binary_expression "puVar33 != (undefined8 *)0x0" (identifier "puVar33") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar33 = (undefined8 *)*puVar33" (identifier "puVar33") (= "=") (cast_expression "(undefined8 *)*puVar33" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar33" (* "*") (identifier "puVar33")))) () ")") (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);\n          if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }\nLAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;\n        if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }\n        uVar28 = *(uint *)(param_2 + 0x14);\n        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }\n        local_a0 = uVar21;\n        local_b0 = 0;\n        if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }\n        if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }\n        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);\n        bfd_map_over_sections(param_1,FUN_00108b90,param_2);\n        bfd_map_over_sections(param_1,FUN_00108850,param_2);\n        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }\n        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }\n        if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }\n        if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }\n        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }\n        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);\n        if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }\n        uVar12 = dcgettext(0,"error copying private BFD data",5);\n        iVar7 = 0;\n        goto LAB_00109580;\n      }" ({ "{") (expression_statement "lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);" (assignment_expression "lVar38 = bfd_get_section_by_name(param_1,puVar33[1])" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_1,puVar33[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_1,puVar33[1])" (( "(") (identifier "param_1") (, ",") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (lVar38 == 0) {\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }\n          else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = puVar33[1];\n            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);\n          }" ({ "{") (expression_statement "uVar12 = puVar33[1];" (assignment_expression "uVar12 = puVar33[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" (identifier "dcgettext") (argument_list "(0,"can\'t dump section \'%s\' - it does not exist",5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t dump section \'%s\' - it does not exist"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t dump section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " - it does not exist") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,0,uVar13,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,0,uVar13,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" (else "else") (compound_statement "{\n            pcVar39 = "can\'t dump section - it has no contents";\n            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }\n            uVar12 = dcgettext(0,pcVar39,5);\n            FUN_0011c0d0(0,param_1,lVar38,uVar12);\n          }" ({ "{") (expression_statement "pcVar39 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar39 = "can\'t dump section - it has no contents"" (identifier "pcVar39") (= "=") (string_literal ""can\'t dump section - it has no contents"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t dump section - it has no contents") (" """))) (; ";")) (if_statement "if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" (if "if") (parenthesized_expression "((*(byte *)(lVar38 + 0x21) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(lVar38 + 0x21) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar38 + 0x21) & 1)" (( "(") (binary_expression "*(byte *)(lVar38 + 0x21) & 1" (pointer_expression "*(byte *)(lVar38 + 0x21)" (* "*") (cast_expression "(byte *)(lVar38 + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x21)" (( "(") (binary_expression "lVar38 + 0x21" (identifier "lVar38") (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              sVar17 = *(size_t *)(lVar38 + 0x38);\n              if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }\n              pcVar39 = "can\'t dump section - it is empty";\n            }" ({ "{") (expression_statement "sVar17 = *(size_t *)(lVar38 + 0x38);" (assignment_expression "sVar17 = *(size_t *)(lVar38 + 0x38)" (identifier "sVar17") (= "=") (pointer_expression "*(size_t *)(lVar38 + 0x38)" (* "*") (cast_expression "(size_t *)(lVar38 + 0x38)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (sVar17 != 0) {\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" (if "if") (parenthesized_expression "(sVar17 != 0)" (( "(") (binary_expression "sVar17 != 0" (identifier "sVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                __s = fopen((char *)puVar33[2],"w");\n                if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }\n                goto LAB_001094a8;\n              }" ({ "{") (expression_statement "__s = fopen((char *)puVar33[2],"w");" (assignment_expression "__s = fopen((char *)puVar33[2],"w")" (identifier "__s") (= "=") (call_expression "fopen((char *)puVar33[2],"w")" (identifier "fopen") (argument_list "((char *)puVar33[2],"w")" (( "(") (cast_expression "(char *)puVar33[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar33[2]" (identifier "puVar33") ([ "[") (number_literal "2") (] "]"))) (, ",") (string_literal ""w"" (" """) (string_content "w") (" """)) () ")")))) (; ";")) (if_statement "if (__s == (FILE *)0x0) {\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }\n                else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" (if "if") (parenthesized_expression "(__s == (FILE *)0x0)" (( "(") (binary_expression "__s == (FILE *)0x0" (identifier "__s") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  uVar12 = dcgettext(0,"could not open section dump file",5);\n                  FUN_0011c0d0(puVar33[2],0,0,uVar12);\n                }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar12 = dcgettext(0,"could not open section dump file",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"could not open section dump file",5)" (identifier "dcgettext") (argument_list "(0,"could not open section dump file",5)" (( "(") (number_literal "0") (, ",") (string_literal ""could not open section dump file"" (" """) (string_content "could not open section dump file") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(puVar33[2],0,0,uVar12);" (call_expression "FUN_0011c0d0(puVar33[2],0,0,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(puVar33[2],0,0,uVar12)" (( "(") (subscript_expression "puVar33[2]" (identifier "puVar33") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" (else "else") (compound_statement "{\n                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }\n                  fclose(__s);\n                  free(local_58);\n                }" ({ "{") (expression_statement "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);" (assignment_expression "iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58)" (identifier "iVar7") (= "=") (call_expression "bfd_malloc_and_get_section(param_1,lVar38,&local_58)" (identifier "bfd_malloc_and_get_section") (argument_list "(param_1,lVar38,&local_58)" (( "(") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }\n                  else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar12 = dcgettext(0,"could not retrieve section contents",5);\n                    FUN_0011c0d0(0,param_1,lVar38,uVar12);\n                  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar12 = dcgettext(0,"could not retrieve section contents",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"could not retrieve section contents",5)" (identifier "dcgettext") (argument_list "(0,"could not retrieve section contents",5)" (( "(") (number_literal "0") (, ",") (string_literal ""could not retrieve section contents"" (" """) (string_content "could not retrieve section contents") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" (else "else") (compound_statement "{\n                    sVar18 = fwrite(local_58,1,sVar17,__s);\n                    if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }\n                  }" ({ "{") (expression_statement "sVar18 = fwrite(local_58,1,sVar17,__s);" (assignment_expression "sVar18 = fwrite(local_58,1,sVar17,__s)" (identifier "sVar18") (= "=") (call_expression "fwrite(local_58,1,sVar17,__s)" (identifier "fwrite") (argument_list "(local_58,1,sVar17,__s)" (( "(") (identifier "local_58") (, ",") (number_literal "1") (, ",") (identifier "sVar17") (, ",") (identifier "__s") () ")")))) (; ";")) (if_statement "if (sVar17 != sVar18) {\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" (if "if") (parenthesized_expression "(sVar17 != sVar18)" (( "(") (binary_expression "sVar17 != sVar18" (identifier "sVar17") (!= "!=") (identifier "sVar18")) () ")")) (compound_statement "{\n                      piVar22 = __errno_location();\n                      pcVar39 = strerror(*piVar22);\n                      uVar12 = puVar33[2];\n                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                      FUN_0011b660(uVar13,uVar12,pcVar39);\n                      free(local_58);\n                      return 0;\n                    }" ({ "{") (expression_statement "piVar22 = __errno_location();" (assignment_expression "piVar22 = __errno_location()" (identifier "piVar22") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar39 = strerror(*piVar22);" (assignment_expression "pcVar39 = strerror(*piVar22)" (identifier "pcVar39") (= "=") (call_expression "strerror(*piVar22)" (identifier "strerror") (argument_list "(*piVar22)" (( "(") (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) () ")")))) (; ";")) (expression_statement "uVar12 = puVar33[2];" (assignment_expression "uVar12 = puVar33[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar33[2]" (identifier "puVar33") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"error writing section contents to %s (error: %s)",5)" (identifier "dcgettext") (argument_list "(0,"error writing section contents to %s (error: %s)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""error writing section contents to %s (error: %s)"" (" """) (string_content "error writing section contents to %s (error: %s)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar13,uVar12,pcVar39);" (call_expression "FUN_0011b660(uVar13,uVar12,pcVar39)" (identifier "FUN_0011b660") (argument_list "(uVar13,uVar12,pcVar39)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar12") (, ",") (identifier "pcVar39") () ")"))) (; ";")) (expression_statement "free(local_58);" (call_expression "free(local_58)" (identifier "free") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "fclose(__s);" (call_expression "fclose(__s)" (identifier "fclose") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "free(local_58);" (call_expression "free(local_58)" (identifier "free") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_001094a8;" (goto "goto") (statement_identifier "LAB_001094a8") (; ";")) (} "}"))) (expression_statement "pcVar39 = "can\'t dump section - it is empty";" (assignment_expression "pcVar39 = "can\'t dump section - it is empty"" (identifier "pcVar39") (= "=") (string_literal ""can\'t dump section - it is empty"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t dump section - it is empty") (" """))) (; ";")) (} "}"))) (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar39,5)" (identifier "dcgettext") (argument_list "(0,pcVar39,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar39") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_1,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_1,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_1,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_001094a8:\n        }\n        local_a8 = DAT_0012ca90;" (statement_identifier "LAB_001094a8") (: ":") (ERROR "}" (} "}")) (expression_statement "local_a8 = DAT_0012ca90;" (assignment_expression "local_a8 = DAT_0012ca90" (identifier "local_a8") (= "=") (identifier "DAT_0012ca90")) (; ";"))) (if_statement "if (DAT_0012ca90 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_0012ca90 != 0)" (( "(") (binary_expression "DAT_0012ca90 != 0" (identifier "DAT_0012ca90") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");\n          if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }\n        }" ({ "{") (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink")" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_2,".gnu_debuglink")" (identifier "bfd_get_section_by_name") (argument_list "(param_2,".gnu_debuglink")" (( "(") (identifier "param_2") (, ",") (string_literal "".gnu_debuglink"" (" """) (string_content ".gnu_debuglink") (" """)) () ")")))) (; ";")) (if_statement "if (lVar38 == 0) {\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }\n          else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);\n            if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }\n            if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }\n          }" ({ "{") (expression_statement "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);" (assignment_expression "local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" (identifier "local_a8") (= "=") (call_expression "bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90)" (identifier "bfd_create_gnu_debuglink_section") (argument_list "(param_2,DAT_0012ca90)" (( "(") (identifier "param_2") (, ",") (identifier "DAT_0012ca90") () ")")))) (; ";")) (if_statement "if (local_a8 == 0) {\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" (if "if") (parenthesized_expression "(local_a8 == 0)" (( "(") (binary_expression "local_a8 == 0" (identifier "local_a8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar39 = "cannot create debug link section `%s\'";\n              lVar38 = DAT_0012ca90;\nLAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n              return 0;\n            }" ({ "{") (expression_statement "pcVar39 = "cannot create debug link section `%s\'";" (assignment_expression "pcVar39 = "cannot create debug link section `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""cannot create debug link section `%s\'"" (" """) (string_content "cannot create debug link section `%s") (escape_sequence "\'") (" """))) (; ";")) (expression_statement "lVar38 = DAT_0012ca90;" (assignment_expression "lVar38 = DAT_0012ca90" (identifier "lVar38") (= "=") (identifier "DAT_0012ca90")) (; ";")) (labeled_statement "LAB_00109ad0:\n              uVar12 = dcgettext(0,pcVar39,5);" (statement_identifier "LAB_00109ad0") (: ":") (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar39,5)" (identifier "dcgettext") (argument_list "(0,pcVar39,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar39") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,0,uVar12,lVar38)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar12") (, ",") (identifier "lVar38") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2[1] + 8) == 2) {\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" (if "if") (parenthesized_expression "(*(int *)(param_2[1] + 8) == 2)" (( "(") (binary_expression "*(int *)(param_2[1] + 8) == 2" (pointer_expression "*(int *)(param_2[1] + 8)" (* "*") (cast_expression "(int *)(param_2[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 8)" (( "(") (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              lVar38 = param_2[0x12];\n              lVar16 = 0;\n              if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }\n              *(ulong *)(local_a8 + 0x30) = uVar29;\n              *(ulong *)(local_a8 + 0x28) = uVar29;\n              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;\n            }" ({ "{") (expression_statement "lVar38 = param_2[0x12];" (assignment_expression "lVar38 = param_2[0x12]" (identifier "lVar38") (= "=") (subscript_expression "param_2[0x12]" (identifier "param_2") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" (identifier "lVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar38 == 0) {\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }\n              else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" (if "if") (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010ad5e:\n                uVar29 = 0x1000;\n              }" ({ "{") (labeled_statement "LAB_0010ad5e:\n                uVar29 = 0x1000;" (statement_identifier "LAB_0010ad5e") (: ":") (expression_statement "uVar29 = 0x1000;" (assignment_expression "uVar29 = 0x1000" (identifier "uVar29") (= "=") (number_literal "0x1000")) (; ";"))) (} "}")) (else_clause "else {\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" (else "else") (compound_statement "{\n                do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);\n                if (lVar24 == 0) goto LAB_0010ad5e;\n                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);\n                uVar29 = 0xffffffffffffffff;\n                if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }\n              }" ({ "{") (do_statement "do {\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                } while (lVar38 != 0);" (do "do") (compound_statement "{\n                  lVar24 = lVar16;\n                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }\n                  lVar38 = *(long *)(lVar38 + 0x10);\n                  lVar16 = lVar24;\n                }" ({ "{") (expression_statement "lVar24 = lVar16;" (assignment_expression "lVar24 = lVar16" (identifier "lVar24") (= "=") (identifier "lVar16")) (; ";")) (if_statement "if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {\n                    lVar24 = lVar38;\n                  }" (if "if") (parenthesized_expression "(((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)))" (( "(") (binary_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&\n                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" (parenthesized_expression "((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0))" (( "(") (binary_expression "(*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)" (parenthesized_expression "(*(ulong *)(lVar38 + 0x28) != 0)" (( "(") (binary_expression "*(ulong *)(lVar38 + 0x28) != 0" (pointer_expression "*(ulong *)(lVar38 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar38 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x28)" (( "(") (binary_expression "lVar38 + 0x28" (identifier "lVar38") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar24 = lVar38, lVar16 != 0)" (( "(") (comma_expression "lVar24 = lVar38, lVar16 != 0" (assignment_expression "lVar24 = lVar38" (identifier "lVar24") (= "=") (identifier "lVar38")) (, ",") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))" (( "(") (comma_expression "lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (assignment_expression "lVar24 = lVar16" (identifier "lVar24") (= "=") (identifier "lVar16")) (, ",") (binary_expression "*(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28)" (pointer_expression "*(ulong *)(lVar16 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar16 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (pointer_expression "*(ulong *)(lVar38 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar38 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x28)" (( "(") (binary_expression "lVar38 + 0x28" (identifier "lVar38") (+ "+") (number_literal "0x28")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                    lVar24 = lVar38;\n                  }" ({ "{") (expression_statement "lVar24 = lVar38;" (assignment_expression "lVar24 = lVar38" (identifier "lVar24") (= "=") (identifier "lVar38")) (; ";")) (} "}"))) (expression_statement "lVar38 = *(long *)(lVar38 + 0x10);" (assignment_expression "lVar38 = *(long *)(lVar38 + 0x10)" (identifier "lVar38") (= "=") (pointer_expression "*(long *)(lVar38 + 0x10)" (* "*") (cast_expression "(long *)(lVar38 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x10)" (( "(") (binary_expression "lVar38 + 0x10" (identifier "lVar38") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar24;" (assignment_expression "lVar16 = lVar24" (identifier "lVar16") (= "=") (identifier "lVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (lVar24 == 0) goto LAB_0010ad5e;" (if "if") (parenthesized_expression "(lVar24 == 0)" (( "(") (binary_expression "lVar24 == 0" (identifier "lVar24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010ad5e;" (goto "goto") (statement_identifier "LAB_0010ad5e") (; ";"))) (expression_statement "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);" (assignment_expression "uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" (identifier "uVar21") (= "=") (binary_expression "*(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28)" (pointer_expression "*(long *)(lVar24 + 0x38)" (* "*") (cast_expression "(long *)(lVar24 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar24 + 0x38)" (( "(") (binary_expression "lVar24 + 0x38" (identifier "lVar24") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (pointer_expression "*(long *)(lVar24 + 0x28)" (* "*") (cast_expression "(long *)(lVar24 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar24 + 0x28)" (( "(") (binary_expression "lVar24 + 0x28" (identifier "lVar24") (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (expression_statement "uVar29 = 0xffffffffffffffff;" (assignment_expression "uVar29 = 0xffffffffffffffff" (identifier "uVar29") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (if_statement "if (uVar21 < 0xfffffffffffff001) {\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" (if "if") (parenthesized_expression "(uVar21 < 0xfffffffffffff001)" (( "(") (binary_expression "uVar21 < 0xfffffffffffff001" (identifier "uVar21") (< "<") (number_literal "0xfffffffffffff001")) () ")")) (compound_statement "{\n                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;\n                }" ({ "{") (expression_statement "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;" (assignment_expression "uVar29 = uVar21 + 0xfff & 0xfffffffffffff000" (identifier "uVar29") (= "=") (binary_expression "uVar21 + 0xfff & 0xfffffffffffff000" (binary_expression "uVar21 + 0xfff" (identifier "uVar21") (+ "+") (number_literal "0xfff")) (& "&") (number_literal "0xfffffffffffff000"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(ulong *)(local_a8 + 0x30) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x30) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x30)" (* "*") (cast_expression "(ulong *)(local_a8 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x30)" (( "(") (binary_expression "local_a8 + 0x30" (identifier "local_a8") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "*(ulong *)(local_a8 + 0x28) = uVar29;" (assignment_expression "*(ulong *)(local_a8 + 0x28) = uVar29" (pointer_expression "*(ulong *)(local_a8 + 0x28)" (* "*") (cast_expression "(ulong *)(local_a8 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x28)" (( "(") (binary_expression "local_a8 + 0x28" (identifier "local_a8") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;" (assignment_expression "*(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" (* "*") (cast_expression "(byte *)(local_a8 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x24)" (( "(") (binary_expression "local_a8 + 0x24" (identifier "local_a8") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(byte *)(local_a8 + 0x24) | 1" (pointer_expression "*(byte *)(local_a8 + 0x24)" (* "*") (cast_expression "(byte *)(local_a8 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + 0x24)" (( "(") (binary_expression "local_a8 + 0x24" (identifier "local_a8") (+ "+") (number_literal "0x24")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" (else "else") (compound_statement "{\n            uVar12 = *param_2;\n            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n            FUN_0011b660(uVar13,uVar12);\n            DAT_0012ca90 = 0;\n            local_a8 = 0;\n          }" ({ "{") (expression_statement "uVar12 = *param_2;" (assignment_expression "uVar12 = *param_2" (identifier "uVar12") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"%s: debuglink section already exists",5);" (assignment_expression "uVar13 = dcgettext(0,"%s: debuglink section already exists",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"%s: debuglink section already exists",5)" (identifier "dcgettext") (argument_list "(0,"%s: debuglink section already exists",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: debuglink section already exists"" (" """) (string_content "%s: debuglink section already exists") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar13,uVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012ca90 = 0;" (assignment_expression "DAT_0012ca90 = 0" (identifier "DAT_0012ca90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar28 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar28 = *(uint *)(param_2 + 0x14)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(param_2 + 0x14)" (* "*") (cast_expression "(uint *)(param_2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }\n        else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0))" (( "(") (binary_expression "(uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0012cad0 == 0 && DAT_0012cac8 == 0)" (( "(") (binary_expression "DAT_0012cad0 == 0 && DAT_0012cac8 == 0" (binary_expression "DAT_0012cad0 == 0" (identifier "DAT_0012cad0") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_0012cac8 == 0" (identifier "DAT_0012cac8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          local_a0 = 0;\n          local_90 = (ulong *)0x0;\n          local_98 = (long *)0x0;\n          uVar21 = local_a0;\n        }" ({ "{") (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = (ulong *)0x0;" (assignment_expression "local_90 = (ulong *)0x0" (identifier "local_90") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = (long *)0x0;" (assignment_expression "local_98 = (long *)0x0" (identifier "local_98") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" (identifier "uVar21") (= "=") (identifier "local_a0")) (; ";")) (} "}")) (else_clause "else {\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          sVar17 = (ulong)uVar28 * 8;\n          local_98 = (long *)xmalloc(sVar17);\n          local_58 = local_98;\n          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);\n          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);\n          local_90 = (ulong *)xmalloc(sVar17);\n          memset(local_90,0,sVar17);\n          uVar21 = 0;\n          local_a0 = 0;\n          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }\n          uVar21 = local_a0;\n          if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "sVar17 = (ulong)uVar28 * 8;" (assignment_expression "sVar17 = (ulong)uVar28 * 8" (identifier "sVar17") (= "=") (binary_expression "(ulong)uVar28 * 8" (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")) (* "*") (number_literal "8"))) (; ";")) (expression_statement "local_98 = (long *)xmalloc(sVar17);" (assignment_expression "local_98 = (long *)xmalloc(sVar17)" (identifier "local_98") (= "=") (cast_expression "(long *)xmalloc(sVar17)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17)" (identifier "xmalloc") (argument_list "(sVar17)" (( "(") (identifier "sVar17") () ")"))))) (; ";")) (expression_statement "local_58 = local_98;" (assignment_expression "local_58 = local_98" (identifier "local_58") (= "=") (identifier "local_98")) (; ";")) (expression_statement "bfd_map_over_sections(param_2,FUN_001071c0,&local_58);" (call_expression "bfd_map_over_sections(param_2,FUN_001071c0,&local_58)" (identifier "bfd_map_over_sections") (argument_list "(param_2,FUN_001071c0,&local_58)" (( "(") (identifier "param_2") (, ",") (identifier "FUN_001071c0") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "qsort(local_98,(ulong)uVar28,8,FUN_001071d0);" (call_expression "qsort(local_98,(ulong)uVar28,8,FUN_001071d0)" (identifier "qsort") (argument_list "(local_98,(ulong)uVar28,8,FUN_001071d0)" (( "(") (identifier "local_98") (, ",") (cast_expression "(ulong)uVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar28")) (, ",") (number_literal "8") (, ",") (identifier "FUN_001071d0") () ")"))) (; ";")) (expression_statement "local_90 = (ulong *)xmalloc(sVar17);" (assignment_expression "local_90 = (ulong *)xmalloc(sVar17)" (identifier "local_90") (= "=") (cast_expression "(ulong *)xmalloc(sVar17)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17)" (identifier "xmalloc") (argument_list "(sVar17)" (( "(") (identifier "sVar17") () ")"))))) (; ";")) (expression_statement "memset(local_90,0,sVar17);" (call_expression "memset(local_90,0,sVar17)" (identifier "memset") (argument_list "(local_90,0,sVar17)" (( "(") (identifier "local_90") (, ",") (number_literal "0") (, ",") (identifier "sVar17") () ")"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" (if "if") (parenthesized_expression "((DAT_0012cad0 != 0) && (uVar28 != 1))" (( "(") (binary_expression "(DAT_0012cad0 != 0) && (uVar28 != 1)" (parenthesized_expression "(DAT_0012cad0 != 0)" (( "(") (binary_expression "DAT_0012cad0 != 0" (identifier "DAT_0012cad0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar28 != 1)" (( "(") (binary_expression "uVar28 != 1" (identifier "uVar28") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n            plVar15 = local_98;\n            puVar32 = local_90;\n            do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);\n          }" ({ "{") (expression_statement "plVar15 = local_98;" (assignment_expression "plVar15 = local_98" (identifier "plVar15") (= "=") (identifier "local_98")) (; ";")) (expression_statement "puVar32 = local_90;" (assignment_expression "puVar32 = local_90" (identifier "puVar32") (= "=") (identifier "local_90")) (; ";")) (do_statement "do {\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);" (do "do") (compound_statement "{\n              lVar38 = *plVar15;\n              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }\n              plVar15 = plVar15 + 1;\n              puVar32 = puVar32 + 1;\n              local_a0 = uVar21;\n            }" ({ "{") (expression_statement "lVar38 = *plVar15;" (assignment_expression "lVar38 = *plVar15" (identifier "lVar38") (= "=") (pointer_expression "*plVar15" (* "*") (identifier "plVar15"))) (; ";")) (if_statement "if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102)" (( "(") (binary_expression "(*(uint *)(lVar38 + 0x20) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(lVar38 + 0x20) & 0x102)" (( "(") (binary_expression "*(uint *)(lVar38 + 0x20) & 0x102" (pointer_expression "*(uint *)(lVar38 + 0x20)" (* "*") (cast_expression "(uint *)(lVar38 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x20)" (( "(") (binary_expression "lVar38 + 0x20" (identifier "lVar38") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0x102")) () ")")) (== "==") (number_literal "0x102")) () ")")) (compound_statement "{\n                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);\n                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }\n              }" ({ "{") (expression_statement "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" (identifier "uVar29") (= "=") (binary_expression "*(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38)" (pointer_expression "*(long *)(lVar38 + 0x30)" (* "*") (cast_expression "(long *)(lVar38 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x30)" (( "(") (binary_expression "lVar38 + 0x30" (identifier "lVar38") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (pointer_expression "*(long *)(lVar38 + 0x38)" (* "*") (cast_expression "(long *)(lVar38 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (if_statement "if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar29 < *(ulong *)(plVar15[1] + 0x30))" (( "(") (binary_expression "uVar29 < *(ulong *)(plVar15[1] + 0x30)" (identifier "uVar29") (< "<") (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" (* "*") (cast_expression "(ulong *)(plVar15[1] + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15[1] + 0x30)" (( "(") (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;\n                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);\n                  if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }\n                  *puVar32 = uVar29;\n                  if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }\n                }" ({ "{") (expression_statement "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;" (assignment_expression "uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29" (identifier "uVar29") (= "=") (binary_expression "*(ulong *)(plVar15[1] + 0x30) - uVar29" (pointer_expression "*(ulong *)(plVar15[1] + 0x30)" (* "*") (cast_expression "(ulong *)(plVar15[1] + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15[1] + 0x30)" (( "(") (binary_expression "plVar15[1] + 0x30" (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x30")) () ")")))) (- "-") (identifier "uVar29"))) (; ";")) (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" (identifier "bfd_set_section_size") (argument_list "(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29)" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (binary_expression "*(long *)(lVar38 + 0x38) + uVar29" (pointer_expression "*(long *)(lVar38 + 0x38)" (* "*") (cast_expression "(long *)(lVar38 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (identifier "uVar29")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);\n                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);\n                    DAT_0012cb24 = 1;\n                    local_a0 = uVar21;\n                    break;\n                  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Can\'t fill gap after section",5);" (assignment_expression "uVar12 = dcgettext(0,"Can\'t fill gap after section",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Can\'t fill gap after section",5)" (identifier "dcgettext") (argument_list "(0,"Can\'t fill gap after section",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Can\'t fill gap after section"" (" """) (string_content "Can") (escape_sequence "\'") (string_content "t fill gap after section") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,*plVar15,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,*plVar15,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,*plVar15,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" (identifier "local_a0") (= "=") (identifier "uVar21")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "*puVar32 = uVar29;" (assignment_expression "*puVar32 = uVar29" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (uVar21 < uVar29) {\n                    uVar21 = uVar29;\n                  }" (if "if") (parenthesized_expression "(uVar21 < uVar29)" (( "(") (binary_expression "uVar21 < uVar29" (identifier "uVar21") (< "<") (identifier "uVar29")) () ")")) (compound_statement "{\n                    uVar21 = uVar29;\n                  }" ({ "{") (expression_statement "uVar21 = uVar29;" (assignment_expression "uVar21 = uVar29" (identifier "uVar21") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "plVar15 = plVar15 + 1;" (assignment_expression "plVar15 = plVar15 + 1" (identifier "plVar15") (= "=") (binary_expression "plVar15 + 1" (identifier "plVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar32 = puVar32 + 1;" (assignment_expression "puVar32 = puVar32 + 1" (identifier "puVar32") (= "=") (binary_expression "puVar32 + 1" (identifier "puVar32") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" (identifier "local_a0") (= "=") (identifier "uVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_98 + (ulong)(uVar28 - 2) + 1 != plVar15)" (( "(") (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1 != plVar15" (binary_expression "local_98 + (ulong)(uVar28 - 2) + 1" (binary_expression "local_98 + (ulong)(uVar28 - 2)" (identifier "local_98") (+ "+") (call_expression "(ulong)(uVar28 - 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar28 - 2)" (( "(") (binary_expression "uVar28 - 2" (identifier "uVar28") (- "-") (number_literal "2")) () ")")))) (+ "+") (number_literal "1")) (!= "!=") (identifier "plVar15")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" (identifier "uVar21") (= "=") (identifier "local_a0")) (; ";")) (if_statement "if (DAT_0012cac8 != 0) {\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(DAT_0012cac8 != 0)" (( "(") (binary_expression "DAT_0012cac8 != 0" (identifier "DAT_0012cac8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar38 = local_98[uVar28 - 1];\n            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);\n            if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "lVar38 = local_98[uVar28 - 1];" (assignment_expression "lVar38 = local_98[uVar28 - 1]" (identifier "lVar38") (= "=") (subscript_expression "local_98[uVar28 - 1]" (identifier "local_98") ([ "[") (binary_expression "uVar28 - 1" (identifier "uVar28") (- "-") (number_literal "1")) (] "]"))) (; ";")) (expression_statement "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);" (assignment_expression "uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" (identifier "uVar29") (= "=") (binary_expression "*(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30)" (pointer_expression "*(long *)(lVar38 + 0x38)" (* "*") (cast_expression "(long *)(lVar38 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (pointer_expression "*(long *)(lVar38 + 0x30)" (* "*") (cast_expression "(long *)(lVar38 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x30)" (( "(") (binary_expression "lVar38 + 0x30" (identifier "lVar38") (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (if_statement "if (uVar29 < DAT_0012cac0) {\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(uVar29 < DAT_0012cac0)" (( "(") (binary_expression "uVar29 < DAT_0012cac0" (identifier "uVar29") (< "<") (identifier "DAT_0012cac0")) () ")")) (compound_statement "{\n              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));\n              if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" (identifier "bfd_set_section_size") (argument_list "(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30))" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (binary_expression "DAT_0012cac0 - *(long *)(lVar38 + 0x30)" (identifier "DAT_0012cac0") (- "-") (pointer_expression "*(long *)(lVar38 + 0x30)" (* "*") (cast_expression "(long *)(lVar38 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x30)" (( "(") (binary_expression "lVar38 + 0x30" (identifier "lVar38") (+ "+") (number_literal "0x30")) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }\n              else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar12 = dcgettext(0,"can\'t add padding",5);\n                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);\n                DAT_0012cb24 = 1;\n              }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"can\'t add padding",5);" (assignment_expression "uVar12 = dcgettext(0,"can\'t add padding",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"can\'t add padding",5)" (identifier "dcgettext") (argument_list "(0,"can\'t add padding",5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t add padding"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t add padding") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);" (call_expression "FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,local_98[uVar28 - 1],uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (subscript_expression "local_98[uVar28 - 1]" (identifier "local_98") ([ "[") (binary_expression "uVar28 - 1" (identifier "uVar28") (- "-") (number_literal "1")) (] "]")) (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" (else "else") (compound_statement "{\n                uVar21 = DAT_0012cac0 - uVar29;\n                local_90[uVar28 - 1] = uVar21;\n                if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }\n              }" ({ "{") (expression_statement "uVar21 = DAT_0012cac0 - uVar29;" (assignment_expression "uVar21 = DAT_0012cac0 - uVar29" (identifier "uVar21") (= "=") (binary_expression "DAT_0012cac0 - uVar29" (identifier "DAT_0012cac0") (- "-") (identifier "uVar29"))) (; ";")) (expression_statement "local_90[uVar28 - 1] = uVar21;" (assignment_expression "local_90[uVar28 - 1] = uVar21" (subscript_expression "local_90[uVar28 - 1]" (identifier "local_90") ([ "[") (binary_expression "uVar28 - 1" (identifier "uVar28") (- "-") (number_literal "1")) (] "]")) (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (uVar21 <= local_a0) {\n                  uVar21 = local_a0;\n                }" (if "if") (parenthesized_expression "(uVar21 <= local_a0)" (( "(") (binary_expression "uVar21 <= local_a0" (identifier "uVar21") (<= "<=") (identifier "local_a0")) () ")")) (compound_statement "{\n                  uVar21 = local_a0;\n                }" ({ "{") (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" (identifier "uVar21") (= "=") (identifier "local_a0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_a0 = uVar21;" (assignment_expression "local_a0 = uVar21" (identifier "local_a0") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0012ca88 != 0) {\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" (if "if") (parenthesized_expression "(DAT_0012ca88 != 0)" (( "(") (binary_expression "DAT_0012ca88 != 0" (identifier "DAT_0012ca88") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);\n        }" ({ "{") (expression_statement "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);" (assignment_expression "local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" (identifier "local_b0") (= "=") (call_expression "FUN_0010c920(param_1,DAT_0012cb40,local_100,0)" (identifier "FUN_0010c920") (argument_list "(param_1,DAT_0012cb40,local_100,0)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0012cb40") (, ",") (identifier "local_100") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_0012cb0c - 2U < 6) {\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }\n        else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" (if "if") (parenthesized_expression "(DAT_0012cb0c - 2U < 6)" (( "(") (binary_expression "DAT_0012cb0c - 2U < 6" (binary_expression "DAT_0012cb0c - 2U" (identifier "DAT_0012cb0c") (- "-") (number_literal "2U")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\nLAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }\n          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);\n          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;\n          DAT_0012cb38 = plVar15;\n          if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }\n          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }\n          iVar7 = DAT_0012ca88;\n          plVar15[local_100] = 0;\n          local_100 = local_100 & 0xffffffff;\n          if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_00109b5a:\n          if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" (statement_identifier "LAB_00109b5a") (: ":") (if_statement "if (DAT_0012cb0c != 7) {\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" (if "if") (parenthesized_expression "(DAT_0012cb0c != 7)" (( "(") (binary_expression "DAT_0012cb0c != 7" (identifier "DAT_0012cb0c") (!= "!=") (number_literal "7")) () ")")) (compound_statement "{\nLAB_00109b5f:\n            bfd_set_error(0);\n            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);\n            iVar7 = bfd_get_error();\n            if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n          }" ({ "{") (labeled_statement "LAB_00109b5f:\n            bfd_set_error(0);" (statement_identifier "LAB_00109b5f") (: ":") (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" (identifier "bfd_set_error") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";"))) (expression_statement "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);" (call_expression "bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00108e30,DAT_0012cb40)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00108e30") (, ",") (identifier "DAT_0012cb40") () ")"))) (; ";")) (expression_statement "iVar7 = bfd_get_error();" (assignment_expression "iVar7 = bfd_get_error()" (identifier "iVar7") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" ({ "{") (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);" (assignment_expression "plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" (identifier "plVar15") (= "=") (cast_expression "(long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8)" (identifier "xmalloc") (argument_list "((local_100 + 1 + (long)DAT_0012ca18) * 8)" (( "(") (binary_expression "(local_100 + 1 + (long)DAT_0012ca18) * 8" (parenthesized_expression "(local_100 + 1 + (long)DAT_0012ca18)" (( "(") (binary_expression "local_100 + 1 + (long)DAT_0012ca18" (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(long)DAT_0012ca18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0012ca18"))) () ")")) (* "*") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;" (assignment_expression "local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42" (field_expression "local_b8._0_4_" (identifier "local_b8") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "*(uint *)(param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)(param_1 + 0x44) >> 5" (pointer_expression "*(uint *)(param_1 + 0x44)" (* "*") (cast_expression "(uint *)(param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "0x42"))) (; ";")) (expression_statement "DAT_0012cb38 = plVar15;" (assignment_expression "DAT_0012cb38 = plVar15" (identifier "DAT_0012cb38") (= "=") (identifier "plVar15")) (; ";")) (if_statement "if (local_100 != 0) {\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" (if "if") (parenthesized_expression "(local_100 != 0)" (( "(") (binary_expression "local_100 != 0" (identifier "local_100") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            plVar34 = DAT_0012cb40 + local_100;\n            local_110 = (size_t *)DAT_0012cb40;\n            local_100 = 0;\n            do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);\n          }" ({ "{") (expression_statement "plVar34 = DAT_0012cb40 + local_100;" (assignment_expression "plVar34 = DAT_0012cb40 + local_100" (identifier "plVar34") (= "=") (binary_expression "DAT_0012cb40 + local_100" (identifier "DAT_0012cb40") (+ "+") (identifier "local_100"))) (; ";")) (expression_statement "local_110 = (size_t *)DAT_0012cb40;" (assignment_expression "local_110 = (size_t *)DAT_0012cb40" (identifier "local_110") (= "=") (cast_expression "(size_t *)DAT_0012cb40" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0012cb40"))) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            } while ((size_t *)plVar34 != local_110);" (do "do") (compound_statement "{\n              iVar7 = DAT_0012ca18;\n              plVar2 = (long *)*local_110;\n              uVar28 = *(uint *)(plVar2 + 3);\n              plVar19 = (long *)plVar2[1];\n              lVar38 = plVar2[4];\n              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\nLAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);\n              plVar46 = plVar19;\n              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }\n              pcVar39 = DAT_0012ca08;\n              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);\n              if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }\nLAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;\n              if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }\n              local_110 = local_110 + 1;\n            }" ({ "{") (expression_statement "iVar7 = DAT_0012ca18;" (assignment_expression "iVar7 = DAT_0012ca18" (identifier "iVar7") (= "=") (identifier "DAT_0012ca18")) (; ";")) (expression_statement "plVar2 = (long *)*local_110;" (assignment_expression "plVar2 = (long *)*local_110" (identifier "plVar2") (= "=") (cast_expression "(long *)*local_110" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_110" (* "*") (identifier "local_110")))) (; ";")) (expression_statement "uVar28 = *(uint *)(plVar2 + 3);" (assignment_expression "uVar28 = *(uint *)(plVar2 + 3)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "plVar19 = (long *)plVar2[1];" (assignment_expression "plVar19 = (long *)plVar2[1]" (identifier "plVar19") (= "=") (cast_expression "(long *)plVar2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "lVar38 = plVar2[4];" (assignment_expression "lVar38 = plVar2[4]" (identifier "lVar38") (= "=") (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" (if "if") (parenthesized_expression "(((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0))" (( "(") (binary_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&\n                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" (( "(") (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" (( "(") (binary_expression "DAT_0012ca20 != (long *)0x0" (identifier "DAT_0012ca20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < DAT_0012ca18)" (( "(") (binary_expression "0 < DAT_0012ca18" (number_literal "0") (< "<") (identifier "DAT_0012ca18")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)" (( "(") (comma_expression "pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0" (assignment_expression "pcVar39 = (char *)DAT_0012ca20[5]" (identifier "pcVar39") (= "=") (cast_expression "(char *)DAT_0012ca20[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0012ca20[5]" (identifier "DAT_0012ca20") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "pcVar39 != (char *)0x0" (identifier "pcVar39") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                iVar10 = 0;\n                plVar46 = DAT_0012ca20;\n                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }\n                free(pcVar39);\n                plVar46[5] = (long)"";\n                lVar16 = FUN_00108200(plVar46,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar46 = DAT_0012ca20;" (assignment_expression "plVar46 = DAT_0012ca20" (identifier "plVar46") (= "=") (identifier "DAT_0012ca20")) (; ";")) (while_statement "while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" (while "while") (parenthesized_expression "(iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0)" (( "(") (comma_expression "iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0" (assignment_expression "iVar11 = strcmp(pcVar39,(char *)plVar19)" (identifier "iVar11") (= "=") (call_expression "strcmp(pcVar39,(char *)plVar19)" (identifier "strcmp") (argument_list "(pcVar39,(char *)plVar19)" (( "(") (identifier "pcVar39") (, ",") (cast_expression "(char *)plVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar19")) () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                  iVar10 = iVar10 + 1;\n                  plVar46 = (long *)*plVar46;\n                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;\n                }" ({ "{") (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar46 = (long *)*plVar46;" (assignment_expression "plVar46 = (long *)*plVar46" (identifier "plVar46") (= "=") (cast_expression "(long *)*plVar46" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar46" (* "*") (identifier "plVar46")))) (; ";")) (if_statement "if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))\n                  goto LAB_00109cb0;" (if "if") (parenthesized_expression "((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))" (( "(") (binary_expression "(iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" (parenthesized_expression "(iVar10 == iVar7)" (( "(") (binary_expression "iVar10 == iVar7" (identifier "iVar10") (== "==") (identifier "iVar7")) () ")")) (|| "||") (parenthesized_expression "(pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0)" (( "(") (comma_expression "pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0" (assignment_expression "pcVar39 = (char *)plVar46[5]" (identifier "pcVar39") (= "=") (cast_expression "(char *)plVar46[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar46[5]" (identifier "plVar46") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "pcVar39 == (char *)0x0" (identifier "pcVar39") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00109cb0;" (goto "goto") (statement_identifier "LAB_00109cb0") (; ";"))) (} "}"))) (expression_statement "free(pcVar39);" (call_expression "free(pcVar39)" (identifier "free") (argument_list "(pcVar39)" (( "(") (identifier "pcVar39") () ")"))) (; ";")) (expression_statement "plVar46[5] = (long)"";" (assignment_expression "plVar46[5] = (long)""" (subscript_expression "plVar46[5]" (identifier "plVar46") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(long)""" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (string_literal """" (" """) (" """)))) (; ";")) (expression_statement "lVar16 = FUN_00108200(plVar46,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar46,param_2)" (identifier "lVar16") (= "=") (call_expression "FUN_00108200(plVar46,param_2)" (identifier "FUN_00108200") (argument_list "(plVar46,param_2)" (( "(") (identifier "plVar46") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" (identifier "plVar15") ([ "[") (identifier "local_100") (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00109cb0:\n              lVar16 = htab_elements(DAT_0012ca30);" (statement_identifier "LAB_00109cb0") (: ":") (expression_statement "lVar16 = htab_elements(DAT_0012ca30);" (assignment_expression "lVar16 = htab_elements(DAT_0012ca30)" (identifier "lVar16") (= "=") (call_expression "htab_elements(DAT_0012ca30)" (identifier "htab_elements") (argument_list "(DAT_0012ca30)" (( "(") (identifier "DAT_0012ca30") () ")")))) (; ";"))) (expression_statement "plVar46 = plVar19;" (assignment_expression "plVar46 = plVar19" (identifier "plVar46") (= "=") (identifier "plVar19")) (; ";")) (if_statement "if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" (if "if") (parenthesized_expression "((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0))" (( "(") (binary_expression "(lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)" (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0)" (( "(") (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" (identifier "DAT_0012cb48") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                local_50 = 0;\n                local_58 = plVar19;\n                lVar16 = htab_find(DAT_0012ca30,&local_58);\n                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }\n                plVar2[1] = (long)plVar46;\n              }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" (identifier "local_58") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "lVar16 = htab_find(DAT_0012ca30,&local_58);" (assignment_expression "lVar16 = htab_find(DAT_0012ca30,&local_58)" (identifier "lVar16") (= "=") (call_expression "htab_find(DAT_0012ca30,&local_58)" (identifier "htab_find") (argument_list "(DAT_0012ca30,&local_58)" (( "(") (identifier "DAT_0012ca30") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0))" (( "(") (binary_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&\n                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" (parenthesized_expression "((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46))" (( "(") (binary_expression "(lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)" (( "(") (comma_expression "plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46" (assignment_expression "plVar46 = *(long **)(lVar16 + 8)" (identifier "plVar46") (= "=") (pointer_expression "*(long **)(lVar16 + 8)" (* "*") (cast_expression "(long **)(lVar16 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "plVar19 == plVar46" (identifier "plVar19") (== "==") (identifier "plVar46"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)" (( "(") (comma_expression "puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0" (assignment_expression "puVar33 = DAT_0012cb48" (identifier "puVar33") (= "=") (identifier "DAT_0012cb48")) (, ",") (binary_expression "(uVar28 & 0x100) != 0" (parenthesized_expression "(uVar28 & 0x100)" (( "(") (binary_expression "uVar28 & 0x100" (identifier "uVar28") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }\n                }" ({ "{") (for_statement "for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;\n                      puVar33 = (undefined8 *)puVar33[3]) {\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" (for "for") (( "(") (; ";") (comma_expression "plVar46 = plVar19, puVar33 != (undefined8 *)0x0" (assignment_expression "plVar46 = plVar19" (identifier "plVar46") (= "=") (identifier "plVar19")) (, ",") (binary_expression "puVar33 != (undefined8 *)0x0" (identifier "puVar33") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar33 = (undefined8 *)puVar33[3]" (identifier "puVar33") (= "=") (cast_expression "(undefined8 *)puVar33[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar33[3]" (identifier "puVar33") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);\n                    if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }\n                  }" ({ "{") (expression_statement "iVar7 = strcmp((char *)*puVar33,(char *)plVar19);" (assignment_expression "iVar7 = strcmp((char *)*puVar33,(char *)plVar19)" (identifier "iVar7") (= "=") (call_expression "strcmp((char *)*puVar33,(char *)plVar19)" (identifier "strcmp") (argument_list "((char *)*puVar33,(char *)plVar19)" (( "(") (cast_expression "(char *)*puVar33" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar33" (* "*") (identifier "puVar33"))) (, ",") (cast_expression "(char *)plVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar19")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      plVar46 = (long *)puVar33[1];\n                      break;\n                    }" ({ "{") (expression_statement "plVar46 = (long *)puVar33[1];" (assignment_expression "plVar46 = (long *)puVar33[1]" (identifier "plVar46") (= "=") (cast_expression "(long *)puVar33[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar33[1]" (identifier "puVar33") ([ "[") (number_literal "1") (] "]")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46"))) (; ";")) (} "}"))) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" (identifier "pcVar39") (= "=") (identifier "DAT_0012ca08")) (; ";")) (expression_statement "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);" (assignment_expression "cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c)" (identifier "cVar42") (= "=") (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x1c)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x1c)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x1c" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((char)*plVar46 == cVar42) {\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }\n              else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" (if "if") (parenthesized_expression "((char)*plVar46 == cVar42)" (( "(") (binary_expression "(char)*plVar46 == cVar42" (cast_expression "(char)*plVar46" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*plVar46" (* "*") (identifier "plVar46"))) (== "==") (identifier "cVar42")) () ")")) (compound_statement "{\n                if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }\n                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }\n                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);\n                plVar2[1] = (long)plVar46;\n              }" ({ "{") (if_statement "if (DAT_0012ca7c == 0) {\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" (if "if") (parenthesized_expression "(DAT_0012ca7c == 0)" (( "(") (binary_expression "DAT_0012ca7c == 0" (identifier "DAT_0012ca7c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;\nLAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109d39;\n                }" ({ "{") (if_statement "if ((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;" (if "if") (parenthesized_expression "((DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))))" (( "(") (binary_expression "(DAT_0012ca78 == 0) ||\n                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" (parenthesized_expression "(DAT_0012ca78 == 0)" (( "(") (binary_expression "DAT_0012ca78 == 0" (identifier "DAT_0012ca78") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))" (( "(") (parenthesized_expression "(((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" (( "(") (binary_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&\n                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678))" (( "(") (binary_expression "(uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)" (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" (( "(") (binary_expression "uVar28 & 0x82" (identifier "uVar28") (& "&") (number_literal "0x82")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(lVar38 != 0x12c678)" (( "(") (binary_expression "lVar38 != 0x12c678" (identifier "lVar38") (!= "!=") (number_literal "0x12c678")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" (( "(") (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" (* "*") (cast_expression "(byte *)(plVar2[4] + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[4] + 0x21)" (( "(") (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00109d39;" (goto "goto") (statement_identifier "LAB_00109d39") (; ";"))) (labeled_statement "LAB_00109f88:\n                  plVar46 = (long *)((long)plVar46 + 1);" (statement_identifier "LAB_00109f88") (: ":") (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" (identifier "plVar46") (= "=") (cast_expression "(long *)((long)plVar46 + 1)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar46 + 1)" (( "(") (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46"))) (; ";")) (goto_statement "goto LAB_00109d39;" (goto "goto") (statement_identifier "LAB_00109d39") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;" (if "if") (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" (( "(") (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" (* "*") (cast_expression "(char *)(param_2[1] + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x1c)" (( "(") (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00109f88;" (goto "goto") (statement_identifier "LAB_00109f88") (; ";"))) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" (if "if") (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" (( "(") (binary_expression "DAT_0012ca08 != (char *)0x0" (identifier "DAT_0012ca08") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  plVar46 = (long *)((long)plVar46 + 1);\n                  plVar2[1] = (long)plVar46;\n                  goto LAB_00109fa6;\n                }" ({ "{") (expression_statement "plVar46 = (long *)((long)plVar46 + 1);" (assignment_expression "plVar46 = (long *)((long)plVar46 + 1)" (identifier "plVar46") (= "=") (cast_expression "(long *)((long)plVar46 + 1)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar46 + 1)" (( "(") (binary_expression "(long)plVar46 + 1" (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46"))) (; ";")) (goto_statement "goto LAB_00109fa6;" (goto "goto") (statement_identifier "LAB_00109fa6") (; ";")) (} "}"))) (expression_statement "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar46 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar46" (* "*") (cast_expression "(char *)plVar46" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar46"))) (= "=") (pointer_expression "*(char *)(param_2[1] + 0x1c)" (* "*") (cast_expression "(char *)(param_2[1] + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x1c)" (( "(") (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46"))) (; ";")) (} "}")) (else_clause "else {\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" (else "else") (compound_statement "{\n                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }\n                plVar46 = plVar20;\n                pcVar39 = DAT_0012ca08;\n                if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }\n                strcpy((char *)plVar19,(char *)__src);\n                plVar2[1] = (long)plVar46;\n              }" ({ "{") (if_statement "if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')) {\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }\n                else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" (if "if") (parenthesized_expression "(((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0'))" (( "(") (binary_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||\n                   (cVar42 != '\0')" (parenthesized_expression "((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0'))" (( "(") (binary_expression "(DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')" (parenthesized_expression "(DAT_0012ca7c == 0)" (( "(") (binary_expression "DAT_0012ca7c == 0" (identifier "DAT_0012ca7c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_2[1] + 0x1c) == '\0')" (( "(") (binary_expression "*(char *)(param_2[1] + 0x1c) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x1c)" (* "*") (cast_expression "(char *)(param_2[1] + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x1c)" (( "(") (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar42 != '\0')" (( "(") (binary_expression "cVar42 != '\0'" (identifier "cVar42") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar20 = plVar19;\n                  __src = plVar46;\n                }" ({ "{") (labeled_statement "LAB_00109d39:\n                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;" (statement_identifier "LAB_00109d39") (: ":") (if_statement "if (pcVar39 == (char *)0x0) goto LAB_00109da6;" (if "if") (parenthesized_expression "(pcVar39 == (char *)0x0)" (( "(") (binary_expression "pcVar39 == (char *)0x0" (identifier "pcVar39") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00109da6;" (goto "goto") (statement_identifier "LAB_00109da6") (; ";")))) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" (identifier "sVar17") (= "=") (call_expression "strlen(pcVar39)" (identifier "strlen") (argument_list "(pcVar39)" (( "(") (identifier "pcVar39") () ")")))) (; ";")) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" (identifier "sVar18") (= "=") (call_expression "strlen((char *)plVar46)" (identifier "strlen") (argument_list "((char *)plVar46)" (( "(") (cast_expression "(char *)plVar46" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar46")) () ")")))) (; ";")) (expression_statement "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18)" (identifier "plVar19") (= "=") (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17 + 2 + sVar18)" (identifier "xmalloc") (argument_list "(sVar17 + 2 + sVar18)" (( "(") (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" (identifier "sVar17") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar18")) () ")"))))) (; ";")) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" (identifier "plVar20") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" (identifier "__src") (= "=") (identifier "plVar46")) (; ";")) (} "}")) (else_clause "else {\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" (else "else") (compound_statement "{\nLAB_00109fa6:\n                  sVar17 = strlen(pcVar39);\n                  sVar18 = strlen((char *)plVar46);\n                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);\n                  plVar19 = (long *)((long)plVar20 + 1);\n                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);\n                  __src = plVar46;\n                }" ({ "{") (labeled_statement "LAB_00109fa6:\n                  sVar17 = strlen(pcVar39);" (statement_identifier "LAB_00109fa6") (: ":") (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" (identifier "sVar17") (= "=") (call_expression "strlen(pcVar39)" (identifier "strlen") (argument_list "(pcVar39)" (( "(") (identifier "pcVar39") () ")")))) (; ";"))) (expression_statement "sVar18 = strlen((char *)plVar46);" (assignment_expression "sVar18 = strlen((char *)plVar46)" (identifier "sVar18") (= "=") (call_expression "strlen((char *)plVar46)" (identifier "strlen") (argument_list "((char *)plVar46)" (( "(") (cast_expression "(char *)plVar46" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar46")) () ")")))) (; ";")) (expression_statement "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);" (assignment_expression "plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18)" (identifier "plVar20") (= "=") (cast_expression "(long *)xmalloc(sVar17 + 2 + sVar18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17 + 2 + sVar18)" (identifier "xmalloc") (argument_list "(sVar17 + 2 + sVar18)" (( "(") (binary_expression "sVar17 + 2 + sVar18" (binary_expression "sVar17 + 2" (identifier "sVar17") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar18")) () ")"))))) (; ";")) (expression_statement "plVar19 = (long *)((long)plVar20 + 1);" (assignment_expression "plVar19 = (long *)((long)plVar20 + 1)" (identifier "plVar19") (= "=") (cast_expression "(long *)((long)plVar20 + 1)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar20 + 1)" (( "(") (binary_expression "(long)plVar20 + 1" (cast_expression "(long)plVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c);" (assignment_expression "*(char *)plVar20 = *(char *)(param_2[1] + 0x1c)" (pointer_expression "*(char *)plVar20" (* "*") (cast_expression "(char *)plVar20" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar20"))) (= "=") (pointer_expression "*(char *)(param_2[1] + 0x1c)" (* "*") (cast_expression "(char *)(param_2[1] + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x1c)" (( "(") (binary_expression "param_2[1] + 0x1c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "__src = plVar46;" (assignment_expression "__src = plVar46" (identifier "__src") (= "=") (identifier "plVar46")) (; ";")) (} "}")))) (expression_statement "plVar46 = plVar20;" (assignment_expression "plVar46 = plVar20" (identifier "plVar46") (= "=") (identifier "plVar20")) (; ";")) (expression_statement "pcVar39 = DAT_0012ca08;" (assignment_expression "pcVar39 = DAT_0012ca08" (identifier "pcVar39") (= "=") (identifier "DAT_0012ca08")) (; ";")) (if_statement "if (DAT_0012ca08 != (char *)0x0) {\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" (if "if") (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" (( "(") (binary_expression "DAT_0012ca08 != (char *)0x0" (identifier "DAT_0012ca08") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  strcpy((char *)plVar19,DAT_0012ca08);\n                  sVar17 = strlen(pcVar39);\n                  plVar19 = (long *)((long)plVar19 + sVar17);\n                }" ({ "{") (expression_statement "strcpy((char *)plVar19,DAT_0012ca08);" (call_expression "strcpy((char *)plVar19,DAT_0012ca08)" (identifier "strcpy") (argument_list "((char *)plVar19,DAT_0012ca08)" (( "(") (cast_expression "(char *)plVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar19")) (, ",") (identifier "DAT_0012ca08") () ")"))) (; ";")) (expression_statement "sVar17 = strlen(pcVar39);" (assignment_expression "sVar17 = strlen(pcVar39)" (identifier "sVar17") (= "=") (call_expression "strlen(pcVar39)" (identifier "strlen") (argument_list "(pcVar39)" (( "(") (identifier "pcVar39") () ")")))) (; ";")) (expression_statement "plVar19 = (long *)((long)plVar19 + sVar17);" (assignment_expression "plVar19 = (long *)((long)plVar19 + sVar17)" (identifier "plVar19") (= "=") (cast_expression "(long *)((long)plVar19 + sVar17)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar19 + sVar17)" (( "(") (binary_expression "(long)plVar19 + sVar17" (cast_expression "(long)plVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar19")) (+ "+") (identifier "sVar17")) () ")")))) (; ";")) (} "}"))) (expression_statement "strcpy((char *)plVar19,(char *)__src);" (call_expression "strcpy((char *)plVar19,(char *)__src)" (identifier "strcpy") (argument_list "((char *)plVar19,(char *)__src)" (( "(") (cast_expression "(char *)plVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar19")) (, ",") (cast_expression "(char *)__src" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__src")) () ")"))) (; ";")) (expression_statement "plVar2[1] = (long)plVar46;" (assignment_expression "plVar2[1] = (long)plVar46" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)plVar46" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar46"))) (; ";")) (} "}")))) (labeled_statement "LAB_00109da6:\n              if (DAT_0012cb0c == 7) goto LAB_00109e38;" (statement_identifier "LAB_00109da6") (: ":") (if_statement "if (DAT_0012cb0c == 7) goto LAB_00109e38;" (if "if") (parenthesized_expression "(DAT_0012cb0c == 7)" (( "(") (binary_expression "DAT_0012cb0c == 7" (identifier "DAT_0012cb0c") (== "==") (number_literal "7")) () ")")) (goto_statement "goto LAB_00109e38;" (goto "goto") (statement_identifier "LAB_00109e38") (; ";")))) (if_statement "if ((uVar28 & 0x20) == 0) {\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }\n              else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" (if "if") (parenthesized_expression "((uVar28 & 0x20) == 0)" (( "(") (binary_expression "(uVar28 & 0x20) == 0" (parenthesized_expression "(uVar28 & 0x20)" (( "(") (binary_expression "uVar28 & 0x20" (identifier "uVar28") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }\nLAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;\n              }" ({ "{") (if_statement "if (((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }\n                else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" (if "if") (parenthesized_expression "(((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0))" (( "(") (binary_expression "((uVar28 & 0x100) == 0) ||\n                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" (parenthesized_expression "((uVar28 & 0x100) == 0)" (( "(") (binary_expression "(uVar28 & 0x100) == 0" (parenthesized_expression "(uVar28 & 0x100)" (( "(") (binary_expression "uVar28 & 0x100" (identifier "uVar28") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20)" (( "(") (binary_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20" (pointer_expression "*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" (* "*") (cast_expression "(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(long **)(plVar2[4] + 0x100) + 0x18)" (( "(") (binary_expression "**(long **)(plVar2[4] + 0x100) + 0x18" (pointer_expression "**(long **)(plVar2[4] + 0x100)" (* "*") (pointer_expression "*(long **)(plVar2[4] + 0x100)" (* "*") (cast_expression "(long **)(plVar2[4] + 0x100)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar2[4] + 0x100)" (( "(") (binary_expression "plVar2[4] + 0x100" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x100")) () ")"))))) (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;\n                }" ({ "{") (if_statement "if ((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }\n                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" (if "if") (parenthesized_expression "((((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49))" (( "(") (binary_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||\n                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" (parenthesized_expression "(((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))))" (( "(") (binary_expression "((uint)local_b8 == 0) &&\n                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" (parenthesized_expression "((uint)local_b8 == 0)" (( "(") (binary_expression "(uint)local_b8 == 0" (cast_expression "(uint)local_b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b8")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))" (( "(") (parenthesized_expression "((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0))" (( "(") (binary_expression "(uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" (( "(") (binary_expression "uVar28 & 0x82" (identifier "uVar28") (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" (( "(") (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" (* "*") (cast_expression "(byte *)(plVar2[4] + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[4] + 0x21)" (( "(") (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)" (( "(") (comma_expression "iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49" (assignment_expression "iVar7 = bfd_decode_symclass(plVar2)" (identifier "iVar7") (= "=") (call_expression "bfd_decode_symclass(plVar2)" (identifier "bfd_decode_symclass") (argument_list "(plVar2)" (( "(") (identifier "plVar2") () ")")))) (, ",") (binary_expression "iVar7 == 0x49" (identifier "iVar7") (== "==") (number_literal "0x49"))) () ")"))) () ")")) (compound_statement "{\nLAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                    if (iVar7 == 0) goto LAB_00109e20;\n                  }" ({ "{") (labeled_statement "LAB_0010a060:\n                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (statement_identifier "LAB_0010a060") (: ":") (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca68)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca68") () ")")))) (; ";"))) (if_statement "if (iVar7 == 0) goto LAB_00109e20;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109e20;" (goto "goto") (statement_identifier "LAB_00109e20") (; ";"))) (} "}")) (else_clause "else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" (else "else") (if_statement "if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }\n                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;" (if "if") (parenthesized_expression "((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0))" (( "(") (binary_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&\n                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (parenthesized_expression "(((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678))" (( "(") (binary_expression "((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)" (parenthesized_expression "((uVar28 & 0x82) == 0)" (( "(") (binary_expression "(uVar28 & 0x82) == 0" (parenthesized_expression "(uVar28 & 0x82)" (( "(") (binary_expression "uVar28 & 0x82" (identifier "uVar28") (& "&") (number_literal "0x82")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar38 != 0x12c678)" (( "(") (binary_expression "lVar38 != 0x12c678" (identifier "lVar38") (!= "!=") (number_literal "0x12c678")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(plVar2[4] + 0x21) & 0x10)" (( "(") (binary_expression "*(byte *)(plVar2[4] + 0x21) & 0x10" (pointer_expression "*(byte *)(plVar2[4] + 0x21)" (* "*") (cast_expression "(byte *)(plVar2[4] + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[4] + 0x21)" (( "(") (binary_expression "plVar2[4] + 0x21" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }\n                    iVar7 = DAT_0012ca88;\n                    if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }\n                  }" ({ "{") (if_statement "if ((uVar28 & 4) == 0) {\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" (if "if") (parenthesized_expression "((uVar28 & 4) == 0)" (( "(") (binary_expression "(uVar28 & 4) == 0" (parenthesized_expression "(uVar28 & 4)" (( "(") (binary_expression "uVar28 & 4" (identifier "uVar28") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }\n                      goto LAB_0010a060;\n                    }" ({ "{") (if_statement "if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)) {\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" (if "if") (parenthesized_expression "(((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0))" (( "(") (binary_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||\n                         (*(long *)(lVar16 + 0x40) == 0)" (parenthesized_expression "((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0))" (( "(") (binary_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||\n                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" (parenthesized_expression "(*(int *)(*(long *)(param_1 + 8) + 8) != 2)" (( "(") (binary_expression "*(int *)(*(long *)(param_1 + 8) + 8) != 2" (pointer_expression "*(int *)(*(long *)(param_1 + 8) + 8)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 8)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 8" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)" (( "(") (comma_expression "lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0" (assignment_expression "lVar16 = *(long *)(plVar2[4] + 0xe0)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(plVar2[4] + 0xe0)" (* "*") (cast_expression "(long *)(plVar2[4] + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[4] + 0xe0)" (( "(") (binary_expression "plVar2[4] + 0xe0" (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0xe0")) () ")"))))) (, ",") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(long *)(lVar16 + 0x40) == 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x40) == 0" (pointer_expression "*(long *)(lVar16 + 0x40)" (* "*") (cast_expression "(long *)(lVar16 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x40)" (( "(") (binary_expression "lVar16 + 0x40" (identifier "lVar16") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;\n                        if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }\n                      }" ({ "{") (if_statement "if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;" (if "if") (parenthesized_expression "((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2))" (( "(") (binary_expression "(DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)" (parenthesized_expression "(DAT_0012cb0c == 3)" (( "(") (binary_expression "DAT_0012cb0c == 3" (identifier "DAT_0012cb0c") (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(DAT_0012cb08 == 2)" (( "(") (binary_expression "DAT_0012cb08 == 2" (identifier "DAT_0012cb08") (== "==") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_00109e38;" (goto "goto") (statement_identifier "LAB_00109e38") (; ";"))) (if_statement "if (DAT_0012cb08 == 1) {\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" (if "if") (parenthesized_expression "(DAT_0012cb08 == 1)" (( "(") (binary_expression "DAT_0012cb08 == 1" (identifier "DAT_0012cb08") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                          iVar7 = bfd_is_local_label(param_1,plVar2);\n                          goto joined_r0x0010aafb;\n                        }" ({ "{") (expression_statement "iVar7 = bfd_is_local_label(param_1,plVar2);" (assignment_expression "iVar7 = bfd_is_local_label(param_1,plVar2)" (identifier "iVar7") (= "=") (call_expression "bfd_is_local_label(param_1,plVar2)" (identifier "bfd_is_local_label") (argument_list "(param_1,plVar2)" (( "(") (identifier "param_1") (, ",") (identifier "plVar2") () ")")))) (; ";")) (goto_statement "goto joined_r0x0010aafb;" (goto "goto") (statement_identifier "joined_r0x0010aafb") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0010a060;" (goto "goto") (statement_identifier "LAB_0010a060") (; ";")) (} "}"))) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" (identifier "iVar7") (= "=") (identifier "DAT_0012ca88")) (; ";")) (if_statement "if (1 < DAT_0012cb0c - 2U) {\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" (if "if") (parenthesized_expression "(1 < DAT_0012cb0c - 2U)" (( "(") (binary_expression "1 < DAT_0012cb0c - 2U" (number_literal "1") (< "<") (binary_expression "DAT_0012cb0c - 2U" (identifier "DAT_0012cb0c") (- "-") (number_literal "2U"))) () ")")) (compound_statement "{\njoined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;\n                    }" ({ "{") (labeled_statement "joined_r0x0010aafb:\n                      if (iVar7 == 0) goto LAB_0010a060;" (statement_identifier "joined_r0x0010aafb") (: ":") (if_statement "if (iVar7 == 0) goto LAB_0010a060;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010a060;" (goto "goto") (statement_identifier "LAB_0010a060") (; ";")))) (} "}"))) (} "}")) (else_clause "else if (DAT_0012cb0c != 3) goto LAB_0010a060;" (else "else") (if_statement "if (DAT_0012cb0c != 3) goto LAB_0010a060;" (if "if") (parenthesized_expression "(DAT_0012cb0c != 3)" (( "(") (binary_expression "DAT_0012cb0c != 3" (identifier "DAT_0012cb0c") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_0010a060;" (goto "goto") (statement_identifier "LAB_0010a060") (; ";"))))))) (} "}")) (else_clause "else {\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" (else "else") (compound_statement "{\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                  if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }\nLAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);\n                  if (iVar7 == 0) goto LAB_00109e61;\n                }" ({ "{") (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca68)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca68") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);\n                    FUN_0011b660(uVar12,plVar46);\n                    DAT_0012cb24 = 1;\n                  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" (identifier "dcgettext") (argument_list "(0,\n                                       "not stripping symbol `%s\' because it is named in a relocation"\n                                       ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" (" """) (string_content "not stripping symbol `%s") (escape_sequence "\'") (string_content " because it is named in a relocation") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" (identifier "FUN_0011b660") (argument_list "(uVar12,plVar46)" (( "(") (identifier "uVar12") (, ",") (identifier "plVar46") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_00109e20:\n                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" (statement_identifier "LAB_00109e20") (: ":") (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca60);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca60)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca60)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca60)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca60") () ")")))) (; ";"))) (if_statement "if (iVar7 == 0) goto LAB_00109e61;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109e61;" (goto "goto") (statement_identifier "LAB_00109e61") (; ";"))) (} "}")))) (labeled_statement "LAB_00109e38:\n                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" (statement_identifier "LAB_00109e38") (: ":") (if_statement "if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;" (if "if") (parenthesized_expression "(((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0))" (( "(") (binary_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||\n                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" (parenthesized_expression "((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0))" (( "(") (binary_expression "(DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)" (parenthesized_expression "(DAT_0012ca10 != 0)" (( "(") (binary_expression "DAT_0012ca10 != 0" (identifier "DAT_0012ca10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar28 & 0x4000) != 0)" (( "(") (binary_expression "(uVar28 & 0x4000) != 0" (parenthesized_expression "(uVar28 & 0x4000)" (( "(") (binary_expression "uVar28 & 0x4000" (identifier "uVar28") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca58)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca58)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca58)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca58") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00109e61;" (goto "goto") (statement_identifier "LAB_00109e61") (; ";")))) (} "}")) (else_clause "else {\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" (else "else") (compound_statement "{\n                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);\n                if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }\nLAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);\n                if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }\n              }" ({ "{") (expression_statement "iVar7 = FUN_00108290(plVar46,DAT_0012ca68);" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca68)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca68)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca68)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca68") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);\n                  FUN_0011b660(uVar12,plVar46);\n                  DAT_0012cb24 = 1;\n                }" ({ "{") (expression_statement "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" (identifier "dcgettext") (argument_list "(0,\n                                     "not stripping symbol `%s\' because it is named in a relocation"\n                                     ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" (" """) (string_content "not stripping symbol `%s") (escape_sequence "\'") (string_content " because it is named in a relocation") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12,plVar46);" (call_expression "FUN_0011b660(uVar12,plVar46)" (identifier "FUN_0011b660") (argument_list "(uVar12,plVar46)" (( "(") (identifier "uVar12") (, ",") (identifier "plVar46") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_00109e61:\n                iVar7 = FUN_001082f0(plVar2[4]);" (statement_identifier "LAB_00109e61") (: ":") (expression_statement "iVar7 = FUN_001082f0(plVar2[4]);" (assignment_expression "iVar7 = FUN_001082f0(plVar2[4])" (identifier "iVar7") (= "=") (call_expression "FUN_001082f0(plVar2[4])" (identifier "FUN_001082f0") (argument_list "(plVar2[4])" (( "(") (subscript_expression "plVar2[4]" (identifier "plVar2") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";"))) (if_statement "if (iVar7 == 0) {\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }\n                  if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }\n                  plVar15[local_100] = (long)plVar2;\n                  local_100 = local_100 + 1;\n                }" ({ "{") (if_statement "if (((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))) {\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" (if "if") (parenthesized_expression "(((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )))" (( "(") (binary_expression "((uVar28 & 2) != 0) &&\n                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" (parenthesized_expression "((uVar28 & 2) != 0)" (( "(") (binary_expression "(uVar28 & 2) != 0" (parenthesized_expression "(uVar28 & 2)" (( "(") (binary_expression "uVar28 & 2" (identifier "uVar28") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      ))" (( "(") (parenthesized_expression "(DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)\n                      )" (( "(") (binary_expression "DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" (binary_expression "DAT_0012ca14 != 0" (identifier "DAT_0012ca14") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca38)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca38)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca38)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca38") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;\n                  }" ({ "{") (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd | 0x80" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffd" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0xfffffffd")) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if (lVar38 != 0x12c678) {\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" (if "if") (parenthesized_expression "(lVar38 != 0x12c678)" (( "(") (binary_expression "lVar38 != 0x12c678" (identifier "lVar38") (!= "!=") (number_literal "0x12c678")) () ")")) (compound_statement "{\n                    if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }\n                    if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }\n                  }" ({ "{") (if_statement "if (((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" (if "if") (parenthesized_expression "(((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))))" (( "(") (binary_expression "((uVar28 & 0x82) != 0) &&\n                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" (parenthesized_expression "((uVar28 & 0x82) != 0)" (( "(") (binary_expression "(uVar28 & 0x82) != 0" (parenthesized_expression "(uVar28 & 0x82)" (( "(") (binary_expression "uVar28 & 0x82" (identifier "uVar28") (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))" (( "(") (parenthesized_expression "((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))))" (( "(") (binary_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||\n                        ((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))))" (( "(") (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca50)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca50)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca50)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca50") () ")")))) (, ",") (binary_expression "iVar7 != 0 ||\n                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))" (( "(") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0))" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca40)" (identifier "htab_elements") (argument_list "(DAT_0012ca40)" (( "(") (identifier "DAT_0012ca40") () ")")))) (, ",") (binary_expression "lVar38 != 0 &&\n                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)" (( "(") (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca40)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca40)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca40)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca40") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")")))) () ")")) (|| "||") (parenthesized_expression "((DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))" (( "(") (parenthesized_expression "(DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))))" (( "(") (binary_expression "DAT_0012ca70 != 0 &&\n                         ((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" (binary_expression "DAT_0012ca70 != 0" (identifier "DAT_0012ca70") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))" (( "(") (parenthesized_expression "(((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2))" (( "(") (binary_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)) &&\n                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" (parenthesized_expression "((lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0))" (( "(") (binary_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&\n                           (*(long *)(lVar38 + 0xf8) != 0)" (parenthesized_expression "(lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5))" (( "(") (comma_expression "lVar38 = *plVar2, lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (assignment_expression "lVar38 = *plVar2" (identifier "lVar38") (= "=") (pointer_expression "*plVar2" (* "*") (identifier "plVar2"))) (, ",") (binary_expression "lVar38 != 0 &&\n                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(*(long *)(lVar38 + 8) + 8) == 5)" (( "(") (binary_expression "*(int *)(*(long *)(lVar38 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar38 + 8) + 8)" (* "*") (cast_expression "(int *)(*(long *)(lVar38 + 8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar38 + 8) + 8)" (( "(") (binary_expression "*(long *)(lVar38 + 8) + 8" (pointer_expression "*(long *)(lVar38 + 8)" (* "*") (cast_expression "(long *)(lVar38 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 8)" (( "(") (binary_expression "lVar38 + 8" (identifier "lVar38") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar38 + 0xf8) != 0)" (( "(") (binary_expression "*(long *)(lVar38 + 0xf8) != 0" (pointer_expression "*(long *)(lVar38 + 0xf8)" (* "*") (cast_expression "(long *)(lVar38 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0xf8)" (( "(") (binary_expression "lVar38 + 0xf8" (identifier "lVar38") (+ "+") (number_literal "0xf8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)" (( "(") (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2" (binary_expression "(*(byte *)((long)plVar2 + 0x49) & 3) - 1" (parenthesized_expression "(*(byte *)((long)plVar2 + 0x49) & 3)" (( "(") (binary_expression "*(byte *)((long)plVar2 + 0x49) & 3" (pointer_expression "*(byte *)((long)plVar2 + 0x49)" (* "*") (cast_expression "(byte *)((long)plVar2 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar2 + 0x49)" (( "(") (binary_expression "(long)plVar2 + 0x49" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "3")) () ")")) (- "-") (number_literal "1")) (< "<") (number_literal "2")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;\n                    }" ({ "{") (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d | 1" (binary_expression "*(uint *)(plVar2 + 3) & 0xffffff7d" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0xffffff7d")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" (if "if") (parenthesized_expression "(((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0))" (( "(") (binary_expression "((uVar28 & 1) != 0) &&\n                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" (parenthesized_expression "((uVar28 & 1) != 0)" (( "(") (binary_expression "(uVar28 & 1) != 0" (parenthesized_expression "(uVar28 & 1)" (( "(") (binary_expression "uVar28 & 1" (identifier "uVar28") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0" (assignment_expression "iVar7 = FUN_00108290(plVar46,DAT_0012ca48)" (identifier "iVar7") (= "=") (call_expression "FUN_00108290(plVar46,DAT_0012ca48)" (identifier "FUN_00108290") (argument_list "(plVar46,DAT_0012ca48)" (( "(") (identifier "plVar46") (, ",") (identifier "DAT_0012ca48") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;\n                    }" ({ "{") (expression_statement "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe | 2" (binary_expression "*(uint *)(plVar2 + 3) & 0xfffffffe" (pointer_expression "*(uint *)(plVar2 + 3)" (* "*") (cast_expression "(uint *)(plVar2 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2 + 3)" (( "(") (binary_expression "plVar2 + 3" (identifier "plVar2") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0xfffffffe")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar15[local_100] = (long)plVar2;" (assignment_expression "plVar15[local_100] = (long)plVar2" (subscript_expression "plVar15[local_100]" (identifier "plVar15") ([ "[") (identifier "local_100") (] "]")) (= "=") (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2"))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_110 = local_110 + 1;" (assignment_expression "local_110 = local_110 + 1" (identifier "local_110") (= "=") (binary_expression "local_110 + 1" (identifier "local_110") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((size_t *)plVar34 != local_110)" (( "(") (binary_expression "(size_t *)plVar34 != local_110" (cast_expression "(size_t *)plVar34" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar34")) (!= "!=") (identifier "local_110")) () ")")) (; ";")) (} "}"))) (if_statement "if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" (if "if") (parenthesized_expression "((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18))" (( "(") (binary_expression "(DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)" (parenthesized_expression "(DAT_0012ca20 != (long *)0x0)" (( "(") (binary_expression "DAT_0012ca20 != (long *)0x0" (identifier "DAT_0012ca20") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < DAT_0012ca18)" (( "(") (binary_expression "0 < DAT_0012ca18" (number_literal "0") (< "<") (identifier "DAT_0012ca18")) () ")"))) () ")")) (compound_statement "{\n            lVar38 = 0;\n            plVar34 = DAT_0012ca20;\n            do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);\n          }" ({ "{") (expression_statement "lVar38 = 0;" (assignment_expression "lVar38 = 0" (identifier "lVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar34 = DAT_0012ca20;" (assignment_expression "plVar34 = DAT_0012ca20" (identifier "plVar34") (= "=") (identifier "DAT_0012ca20")) (; ";")) (do_statement "do {\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            } while (lVar38 < DAT_0012ca18);" (do "do") (compound_statement "{\n              pcVar39 = (char *)plVar34[5];\n              if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }\n              lVar38 = lVar38 + 1;\n              plVar34 = (long *)*plVar34;\n            }" ({ "{") (expression_statement "pcVar39 = (char *)plVar34[5];" (assignment_expression "pcVar39 = (char *)plVar34[5]" (identifier "pcVar39") (= "=") (cast_expression "(char *)plVar34[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar34[5]" (identifier "plVar34") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (pcVar39 == (char *)0x0) {\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }\n              else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" (if "if") (parenthesized_expression "(pcVar39 == (char *)0x0)" (( "(") (binary_expression "pcVar39 == (char *)0x0" (identifier "pcVar39") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                lVar16 = FUN_00108200(plVar34,param_2);\n                plVar15[local_100] = lVar16;\n                local_100 = local_100 + 1;\n              }" ({ "{") (expression_statement "lVar16 = FUN_00108200(plVar34,param_2);" (assignment_expression "lVar16 = FUN_00108200(plVar34,param_2)" (identifier "lVar16") (= "=") (call_expression "FUN_00108200(plVar34,param_2)" (identifier "FUN_00108200") (argument_list "(plVar34,param_2)" (( "(") (identifier "plVar34") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "plVar15[local_100] = lVar16;" (assignment_expression "plVar15[local_100] = lVar16" (subscript_expression "plVar15[local_100]" (identifier "plVar15") ([ "[") (identifier "local_100") (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" (else "else") (if_statement "if (*pcVar39 != '\0') {\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" (if "if") (parenthesized_expression "(*pcVar39 != '\0')" (( "(") (binary_expression "*pcVar39 != '\0'" (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar12 = dcgettext(0,"\'before=%s\' not found",5);\n                    \n                FUN_0011b5c0(uVar12,pcVar39);\n              }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"\'before=%s\' not found",5);" (assignment_expression "uVar12 = dcgettext(0,"\'before=%s\' not found",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"\'before=%s\' not found",5)" (identifier "dcgettext") (argument_list "(0,"\'before=%s\' not found",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\'before=%s\' not found"" (" """) (escape_sequence "\'") (string_content "before=%s") (escape_sequence "\'") (string_content " not found") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b5c0(uVar12,pcVar39);" (call_expression "FUN_0011b5c0(uVar12,pcVar39)" (identifier "FUN_0011b5c0") (argument_list "(uVar12,pcVar39)" (( "(") (identifier "uVar12") (, ",") (identifier "pcVar39") () ")"))) (; ";")) (} "}"))))) (expression_statement "lVar38 = lVar38 + 1;" (assignment_expression "lVar38 = lVar38 + 1" (identifier "lVar38") (= "=") (binary_expression "lVar38 + 1" (identifier "lVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar34 = (long *)*plVar34;" (assignment_expression "plVar34 = (long *)*plVar34" (identifier "plVar34") (= "=") (cast_expression "(long *)*plVar34" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar34" (* "*") (identifier "plVar34")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar38 < DAT_0012ca18)" (( "(") (binary_expression "lVar38 < DAT_0012ca18" (identifier "lVar38") (< "<") (identifier "DAT_0012ca18")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = DAT_0012ca88;" (assignment_expression "iVar7 = DAT_0012ca88" (identifier "iVar7") (= "=") (identifier "DAT_0012ca88")) (; ";")) (expression_statement "plVar15[local_100] = 0;" (assignment_expression "plVar15[local_100] = 0" (subscript_expression "plVar15[local_100]" (identifier "plVar15") ([ "[") (identifier "local_100") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = local_100 & 0xffffffff;" (assignment_expression "local_100 = local_100 & 0xffffffff" (identifier "local_100") (= "=") (binary_expression "local_100 & 0xffffffff" (identifier "local_100") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if ((iVar7 != 0) && (local_b0 != 0)) {\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" (if "if") (parenthesized_expression "((iVar7 != 0) && (local_b0 != 0))" (( "(") (binary_expression "(iVar7 != 0) && (local_b0 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);\n            if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);\n            if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n            if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }\n            *(undefined4 *)(lVar38 + 0x70) = 2;\n            *(undefined4 *)(lVar16 + 0x70) = 0;\n            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);\n            if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }\n          }" ({ "{") (expression_statement "iVar7 = *(int *)((undefined8 *)param_2[1] + 1);" (assignment_expression "iVar7 = *(int *)((undefined8 *)param_2[1] + 1)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((undefined8 *)param_2[1] + 1)" (* "*") (cast_expression "(int *)((undefined8 *)param_2[1] + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined8 *)param_2[1] + 1)" (( "(") (binary_expression "(undefined8 *)param_2[1] + 1" (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if ((iVar7 != 2) && (iVar7 != 5)) {\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" (if "if") (parenthesized_expression "((iVar7 != 2) && (iVar7 != 5))" (( "(") (binary_expression "(iVar7 != 2) && (iVar7 != 5)" (parenthesized_expression "(iVar7 != 2)" (( "(") (binary_expression "iVar7 != 2" (identifier "iVar7") (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 != 5)" (( "(") (binary_expression "iVar7 != 5" (identifier "iVar7") (!= "!=") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n              uVar12 = *(undefined8 *)param_2[1];\n              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)param_2[1];" (assignment_expression "uVar12 = *(undefined8 *)param_2[1]" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)param_2[1]" (* "*") (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"don\'t know how to write debugging information for %s",5)" (identifier "dcgettext") (argument_list "(0,"don\'t know how to write debugging information for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""don\'t know how to write debugging information for %s"" (" """) (string_content "don") (escape_sequence "\'") (string_content "t know how to write debugging information for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar13,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar13,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,0,uVar13,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);" (assignment_expression "iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" (identifier "iVar7") (= "=") (call_expression "FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" (identifier "FUN_0011aff0") (argument_list "(param_2,local_b0,&local_88,local_78,&local_80,&local_58)" (( "(") (identifier "param_2") (, ",") (identifier "local_b0") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) (, ",") (identifier "local_78") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n              DAT_0012cb24 = 1;\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              DAT_0012cb24 = 1;\n              return 0;\n            }" ({ "{") (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108)" (identifier "lVar38") (= "=") (call_expression "bfd_make_section_with_flags(param_2,".stab",0x2108)" (identifier "bfd_make_section_with_flags") (argument_list "(param_2,".stab",0x2108)" (( "(") (identifier "param_2") (, ",") (string_literal "".stab"" (" """) (string_content ".stab") (" """)) (, ",") (number_literal "0x2108") () ")")))) (; ";")) (expression_statement "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108)" (identifier "lVar16") (= "=") (call_expression "bfd_make_section_with_flags(param_2,".stabstr",0x2108)" (identifier "bfd_make_section_with_flags") (argument_list "(param_2,".stabstr",0x2108)" (( "(") (identifier "param_2") (, ",") (string_literal "".stabstr"" (" """) (string_content ".stabstr") (" """)) (, ",") (number_literal "0x2108") () ")")))) (; ";")) (if_statement "if ((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" (if "if") (parenthesized_expression "((((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0))" (( "(") (binary_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||\n               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" (parenthesized_expression "(((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0))" (( "(") (binary_expression "((lVar38 == 0) || (lVar16 == 0)) ||\n                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" (parenthesized_expression "((lVar38 == 0) || (lVar16 == 0))" (( "(") (binary_expression "(lVar38 == 0) || (lVar16 == 0)" (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,lVar38,local_78[0])" (identifier "bfd_set_section_size") (argument_list "(param_2,lVar38,local_78[0])" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_size(param_2,lVar16,local_58)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_size(param_2,lVar16,local_58)" (identifier "bfd_set_section_size") (argument_list "(param_2,lVar16,local_58)" (( "(") (identifier "param_2") (, ",") (identifier "lVar16") (, ",") (identifier "local_58") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              pcVar39 = "can\'t create debugging section";\nLAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);\n              FUN_0011c0d0(0,param_2,0,uVar12);\n              DAT_0012cb24 = 1;\n              return 0;\n            }" ({ "{") (expression_statement "pcVar39 = "can\'t create debugging section";" (assignment_expression "pcVar39 = "can\'t create debugging section"" (identifier "pcVar39") (= "=") (string_literal ""can\'t create debugging section"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create debugging section") (" """))) (; ";")) (labeled_statement "LAB_0010a991:\n              uVar12 = dcgettext(0,pcVar39,5);" (statement_identifier "LAB_0010a991") (: ":") (expression_statement "uVar12 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar39,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar39,5)" (identifier "dcgettext") (argument_list "(0,pcVar39,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar39") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,0,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "DAT_0012cb24 = 1;" (assignment_expression "DAT_0012cb24 = 1" (identifier "DAT_0012cb24") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(lVar38 + 0x70) = 2;" (assignment_expression "*(undefined4 *)(lVar38 + 0x70) = 2" (pointer_expression "*(undefined4 *)(lVar38 + 0x70)" (* "*") (cast_expression "(undefined4 *)(lVar38 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x70)" (( "(") (binary_expression "lVar38 + 0x70" (identifier "lVar38") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(lVar16 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(lVar16 + 0x70) = 0" (pointer_expression "*(undefined4 *)(lVar16 + 0x70)" (* "*") (cast_expression "(undefined4 *)(lVar16 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x70)" (( "(") (binary_expression "lVar16 + 0x70" (identifier "lVar16") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0])" (identifier "bfd_set_section_contents") (argument_list "(param_2,lVar38,local_88,0,local_78[0])" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "local_88") (, ",") (number_literal "0") (, ",") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" (if "if") (parenthesized_expression "((iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0))" (( "(") (binary_expression "(iVar7 == 0) ||\n               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,lVar16,local_80,0,local_58)" (identifier "bfd_set_section_contents") (argument_list "(param_2,lVar16,local_80,0,local_58)" (( "(") (identifier "param_2") (, ",") (identifier "lVar16") (, ",") (identifier "local_80") (, ",") (number_literal "0") (, ",") (identifier "local_58") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              pcVar39 = "can\'t set debugging section contents";\n              goto LAB_0010a991;\n            }" ({ "{") (expression_statement "pcVar39 = "can\'t set debugging section contents";" (assignment_expression "pcVar39 = "can\'t set debugging section contents"" (identifier "pcVar39") (= "=") (string_literal ""can\'t set debugging section contents"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t set debugging section contents") (" """))) (; ";")) (goto_statement "goto LAB_0010a991;" (goto "goto") (statement_identifier "LAB_0010a991") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" (else "else") (compound_statement "{\n          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;\n          lVar38 = htab_elements(DAT_0012ca68);\n          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;\n        }" ({ "{") (if_statement "if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;" (if "if") (parenthesized_expression "(DAT_0012ca70 != 0 || DAT_0012cb08 != 0)" (( "(") (binary_expression "DAT_0012ca70 != 0 || DAT_0012cb08 != 0" (binary_expression "DAT_0012ca70 != 0" (identifier "DAT_0012ca70") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "DAT_0012cb08 != 0" (identifier "DAT_0012cb08") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00109b5f;" (goto "goto") (statement_identifier "LAB_00109b5f") (; ";"))) (expression_statement "lVar38 = htab_elements(DAT_0012ca68);" (assignment_expression "lVar38 = htab_elements(DAT_0012ca68)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca68)" (identifier "htab_elements") (argument_list "(DAT_0012ca68)" (( "(") (identifier "DAT_0012ca68") () ")")))) (; ";")) (if_statement "if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;" (if "if") (parenthesized_expression "((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))))" (( "(") (binary_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||\n             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" (parenthesized_expression "(((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0))" (( "(") (binary_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||\n              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" (parenthesized_expression "((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))))" (( "(") (binary_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||\n               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" (parenthesized_expression "(((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0))" (( "(") (binary_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||\n                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" (parenthesized_expression "((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0))" (( "(") (binary_expression "(lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" (parenthesized_expression "(lVar38 != 0)" (( "(") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca58)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca58)" (identifier "htab_elements") (argument_list "(DAT_0012ca58)" (( "(") (identifier "DAT_0012ca58") () ")")))) (, ",") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca50)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca50)" (identifier "htab_elements") (argument_list "(DAT_0012ca50)" (( "(") (identifier "DAT_0012ca50") () ")")))) (, ",") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))" (( "(") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0))" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca48)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca48)" (identifier "htab_elements") (argument_list "(DAT_0012ca48)" (( "(") (identifier "DAT_0012ca48") () ")")))) (, ",") (binary_expression "lVar38 != 0 ||\n                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca40)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca40)" (identifier "htab_elements") (argument_list "(DAT_0012ca40)" (( "(") (identifier "DAT_0012ca40") () ")")))) (, ",") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0" (assignment_expression "lVar38 = htab_elements(DAT_0012ca38)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca38)" (identifier "htab_elements") (argument_list "(DAT_0012ca38)" (( "(") (identifier "DAT_0012ca38") () ")")))) (, ",") (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))))" (( "(") (parenthesized_expression "((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))))" (( "(") (binary_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))\n              || ((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" (parenthesized_expression "(lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))" (( "(") (comma_expression "lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (assignment_expression "lVar38 = htab_elements(DAT_0012ca30)" (identifier "lVar38") (= "=") (call_expression "htab_elements(DAT_0012ca30)" (identifier "htab_elements") (argument_list "(DAT_0012ca30)" (( "(") (identifier "DAT_0012ca30") () ")")))) (, ",") (binary_expression "lVar38 != 0 || (DAT_0012ca08 != (char *)0x0)" (binary_expression "lVar38 != 0" (identifier "lVar38") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(DAT_0012ca08 != (char *)0x0)" (( "(") (binary_expression "DAT_0012ca08 != (char *)0x0" (identifier "DAT_0012ca08") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) () ")")) (|| "||") (parenthesized_expression "((DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)))" (( "(") (parenthesized_expression "(DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0))" (( "(") (binary_expression "DAT_0012cb48 != (undefined8 *)0x0 ||\n                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" (binary_expression "DAT_0012cb48 != (undefined8 *)0x0" (identifier "DAT_0012cb48") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0)" (( "(") (binary_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||\n                   DAT_0012ca18 != 0" (parenthesized_expression "(((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0)" (( "(") (binary_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0" (parenthesized_expression "((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0)" (( "(") (binary_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0" (parenthesized_expression "(((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0)" (( "(") (binary_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||\n                     DAT_0012ca7c != 0" (parenthesized_expression "((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0)" (( "(") (binary_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0" (parenthesized_expression "(DAT_0012cafc != 0 || DAT_0012caf8 != 0)" (( "(") (binary_expression "DAT_0012cafc != 0 || DAT_0012caf8 != 0" (binary_expression "DAT_0012cafc != 0" (identifier "DAT_0012cafc") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "DAT_0012caf8 != 0" (identifier "DAT_0012caf8") (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "DAT_0012ca88 != 0" (identifier "DAT_0012ca88") (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "DAT_0012ca7c != 0" (identifier "DAT_0012ca7c") (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "DAT_0012ca78 != 0" (identifier "DAT_0012ca78") (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "DAT_0012ca14 != 0" (identifier "DAT_0012ca14") (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "DAT_0012ca18 != 0" (identifier "DAT_0012ca18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00109b5a;" (goto "goto") (statement_identifier "LAB_00109b5a") (; ";"))) (} "}")))) (expression_statement "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);" (call_expression "bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff)" (identifier "bfd_set_symtab") (argument_list "(param_2,DAT_0012cb38,local_100 & 0xffffffff)" (( "(") (identifier "param_2") (, ",") (identifier "DAT_0012cb38") (, ",") (binary_expression "local_100 & 0xffffffff" (identifier "local_100") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "bfd_map_over_sections(param_1,FUN_00108b90,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108b90,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00108b90,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00108b90") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "bfd_map_over_sections(param_1,FUN_00108850,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00108850,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00108850,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00108850") (, ",") (identifier "param_2") () ")"))) (; ";")) (for_statement "for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;\n            puVar33 = (undefined8 *)*puVar33) {\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" (for "for") (( "(") (assignment_expression "puVar33 = DAT_0012caa8" (identifier "puVar33") (= "=") (identifier "DAT_0012caa8")) (; ";") (comma_expression "puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0" (assignment_expression "puVar44 = DAT_0012caa0" (identifier "puVar44") (= "=") (identifier "DAT_0012caa0")) (, ",") (binary_expression "puVar33 != (undefined8 *)0x0" (identifier "puVar33") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar33 = (undefined8 *)*puVar33" (identifier "puVar33") (= "=") (cast_expression "(undefined8 *)*puVar33" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar33" (* "*") (identifier "puVar33")))) () ")") (compound_statement "{\n          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);\n          if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }\n        }" ({ "{") (expression_statement "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3])" (identifier "bfd_set_section_contents") (argument_list "(param_2,puVar33[5],puVar33[4],0,puVar33[3])" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "puVar33[4]" (identifier "puVar33") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "0") (, ",") (subscript_expression "puVar33[3]" (identifier "puVar33") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);\n            return iVar7;\n          }" ({ "{") (labeled_statement "LAB_00109aa8:\n            FUN_0011c0d0(0,param_2,puVar33[5],0);" (statement_identifier "LAB_00109aa8") (: ":") (expression_statement "FUN_0011c0d0(0,param_2,puVar33[5],0);" (call_expression "FUN_0011c0d0(0,param_2,puVar33[5],0)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,puVar33[5],0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (subscript_expression "puVar33[5]" (identifier "puVar33") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "0") () ")"))) (; ";"))) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (} "}"))) (for_statement "for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" (for "for") (( "(") (; ";") (binary_expression "puVar44 != (undefined8 *)0x0" (identifier "puVar44") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar44 = (undefined8 *)*puVar44" (identifier "puVar44") (= "=") (cast_expression "(undefined8 *)*puVar44" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar44" (* "*") (identifier "puVar44")))) () ")") (compound_statement "{\n          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);\n          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);\n          if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }\n        }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(puVar44[5] + 0x68);" (assignment_expression "uVar12 = *(undefined8 *)(puVar44[5] + 0x68)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(puVar44[5] + 0x68)" (* "*") (cast_expression "(undefined8 *)(puVar44[5] + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar44[5] + 0x68)" (( "(") (binary_expression "puVar44[5] + 0x68" (subscript_expression "puVar44[5]" (identifier "puVar44") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3])" (identifier "bfd_set_section_contents") (argument_list "(param_2,uVar12,puVar44[4],0,puVar44[3])" (( "(") (identifier "param_2") (, ",") (identifier "uVar12") (, ",") (subscript_expression "puVar44[4]" (identifier "puVar44") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "0") (, ",") (subscript_expression "puVar44[3]" (identifier "puVar44") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0011c0d0(0,param_2,uVar12,0);\n            return 0;\n          }" ({ "{") (expression_statement "FUN_0011c0d0(0,param_2,uVar12,0);" (call_expression "FUN_0011c0d0(0,param_2,uVar12,0)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,uVar12,0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "uVar12") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0012cb20 != 0) {\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" (if "if") (parenthesized_expression "(DAT_0012cb20 != 0)" (( "(") (binary_expression "DAT_0012cb20 != 0" (identifier "DAT_0012cb20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }\n          free(DAT_0012cb18);\n          DAT_0012cb18 = (void *)0x0;\n          DAT_0012cb20 = 0;\n        }" ({ "{") (expression_statement "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes")" (identifier "lVar38") (= "=") (call_expression "bfd_get_section_by_name(param_2,".gnu.build.attributes")" (identifier "bfd_get_section_by_name") (argument_list "(param_2,".gnu.build.attributes")" (( "(") (identifier "param_2") (, ",") (string_literal "".gnu.build.attributes"" (" """) (string_content ".gnu.build.attributes") (" """)) () ")")))) (; ";")) (if_statement "if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }\n          else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" (if "if") (parenthesized_expression "(((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))))" (( "(") (binary_expression "((lVar38 == 0) || (DAT_0012cb20 == 0)) ||\n             ((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" (parenthesized_expression "((lVar38 == 0) || (DAT_0012cb20 == 0))" (( "(") (binary_expression "(lVar38 == 0) || (DAT_0012cb20 == 0)" (parenthesized_expression "(lVar38 == 0)" (( "(") (binary_expression "lVar38 == 0" (identifier "lVar38") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0012cb20 == 0)" (( "(") (binary_expression "DAT_0012cb20 == 0" (identifier "DAT_0012cb20") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))" (( "(") (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0))" (( "(") (binary_expression "*(int *)(param_2[1] + 8) != 5 ||\n              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" (* "*") (cast_expression "(int *)(param_2[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 8)" (( "(") (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "5")) (|| "||") (parenthesized_expression "(iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)" (( "(") (comma_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0" (assignment_expression "iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0)" (identifier "iVar7") (= "=") (call_expression "FUN_00107fb0(lVar38,lVar38 + 0xe0)" (identifier "FUN_00107fb0") (argument_list "(lVar38,lVar38 + 0xe0)" (( "(") (identifier "lVar38") (, ",") (binary_expression "lVar38 + 0xe0" (identifier "lVar38") (+ "+") (number_literal "0xe0")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }\n          }" ({ "{") (if_statement "if (DAT_0012c508 == 0) {\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" (if "if") (parenthesized_expression "(DAT_0012c508 == 0)" (( "(") (binary_expression "DAT_0012c508 == 0" (identifier "DAT_0012c508") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n            }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"could not find any mergeable note sections",5);" (assignment_expression "uVar12 = dcgettext(0,"could not find any mergeable note sections",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"could not find any mergeable note sections",5)" (identifier "dcgettext") (argument_list "(0,"could not find any mergeable note sections",5)" (( "(") (number_literal "0") (, ",") (string_literal ""could not find any mergeable note sections"" (" """) (string_content "could not find any mergeable note sections") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" (else "else") (compound_statement "{\n            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);\n            if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }\n          }" ({ "{") (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" (identifier "bfd_set_section_contents") (argument_list "(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10)" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "DAT_0012cb18") (, ",") (number_literal "0") (, ",") (identifier "DAT_0012cb10") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);\n              FUN_0011c0d0(0,param_2,lVar38,uVar12);\n              return 0;\n            }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);" (assignment_expression "uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5)" (identifier "dcgettext") (argument_list "(0,"error: failed to copy merged notes into output",5)" (( "(") (number_literal "0") (, ",") (string_literal ""error: failed to copy merged notes into output"" (" """) (string_content "error: failed to copy merged notes into output") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,lVar38,uVar12);" (call_expression "FUN_0011c0d0(0,param_2,lVar38,uVar12)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,lVar38,uVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "free(DAT_0012cb18);" (call_expression "free(DAT_0012cb18)" (identifier "free") (argument_list "(DAT_0012cb18)" (( "(") (identifier "DAT_0012cb18") () ")"))) (; ";")) (expression_statement "DAT_0012cb18 = (void *)0x0;" (assignment_expression "DAT_0012cb18 = (void *)0x0" (identifier "DAT_0012cb18") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_0012cb20 = 0;" (assignment_expression "DAT_0012cb20 = 0" (identifier "DAT_0012cb20") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)) {\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" (if "if") (parenthesized_expression "((DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0))" (( "(") (binary_expression "(DAT_0012ca90 != 0) &&\n           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" (parenthesized_expression "(DAT_0012ca90 != 0)" (( "(") (binary_expression "DAT_0012ca90 != 0" (identifier "DAT_0012ca90") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" (identifier "iVar7") (= "=") (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,local_a8)" (identifier "bfd_fill_in_gnu_debuglink_section") (argument_list "(param_2,local_a8)" (( "(") (identifier "param_2") (, ",") (identifier "local_a8") () ")")))) (, ",") (comma_expression "lVar38 = DAT_0012ca90,\n           iVar7 == 0" (assignment_expression "lVar38 = DAT_0012ca90" (identifier "lVar38") (= "=") (identifier "DAT_0012ca90")) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);\n          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);\n          return 0;\n        }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"cannot fill debug link section `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot fill debug link section `%s\'"" (" """) (string_content "cannot fill debug link section `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c0d0(0,param_2,0,uVar12,lVar38);" (call_expression "FUN_0011c0d0(0,param_2,0,uVar12,lVar38)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,0,uVar12,lVar38)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar12") (, ",") (identifier "lVar38") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" (if "if") (parenthesized_expression "(DAT_0012cad0 != 0 || DAT_0012cac8 != 0)" (( "(") (binary_expression "DAT_0012cad0 != 0 || DAT_0012cac8 != 0" (binary_expression "DAT_0012cad0 != 0" (identifier "DAT_0012cad0") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "DAT_0012cac8 != 0" (identifier "DAT_0012cac8") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          uVar21 = 0x2000;\n          if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }\n          plVar15 = (long *)xmalloc(uVar21);\n          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;\n          uVar28 = (uint)uVar21;\n          if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }\n          if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }\n        }" ({ "{") (expression_statement "uVar21 = 0x2000;" (assignment_expression "uVar21 = 0x2000" (identifier "uVar21") (= "=") (number_literal "0x2000")) (; ";")) (if_statement "if (local_a0 < 0x2001) {\n            uVar21 = local_a0;\n          }" (if "if") (parenthesized_expression "(local_a0 < 0x2001)" (( "(") (binary_expression "local_a0 < 0x2001" (identifier "local_a0") (< "<") (number_literal "0x2001")) () ")")) (compound_statement "{\n            uVar21 = local_a0;\n          }" ({ "{") (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" (identifier "uVar21") (= "=") (identifier "local_a0")) (; ";")) (} "}"))) (expression_statement "plVar15 = (long *)xmalloc(uVar21);" (assignment_expression "plVar15 = (long *)xmalloc(uVar21)" (identifier "plVar15") (= "=") (cast_expression "(long *)xmalloc(uVar21)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar21)" (identifier "xmalloc") (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")"))))) (; ";")) (expression_statement "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;" (assignment_expression "lVar38 = (ulong)DAT_0012cacc * 0x101010101010101" (identifier "lVar38") (= "=") (binary_expression "(ulong)DAT_0012cacc * 0x101010101010101" (cast_expression "(ulong)DAT_0012cacc" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "DAT_0012cacc")) (* "*") (number_literal "0x101010101010101"))) (; ";")) (expression_statement "uVar28 = (uint)uVar21;" (assignment_expression "uVar28 = (uint)uVar21" (identifier "uVar28") (= "=") (cast_expression "(uint)uVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar21"))) (; ";")) (if_statement "if (uVar28 < 8) {\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }\n          else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" (if "if") (parenthesized_expression "(uVar28 < 8)" (( "(") (binary_expression "uVar28 < 8" (identifier "uVar28") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n            if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }\n          }" ({ "{") (if_statement "if ((uVar21 & 4) == 0) {\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }\n            else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" (if "if") (parenthesized_expression "((uVar21 & 4) == 0)" (( "(") (binary_expression "(uVar21 & 4) == 0" (parenthesized_expression "(uVar21 & 4)" (( "(") (binary_expression "uVar21 & 4" (identifier "uVar21") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }\n            }" ({ "{") (if_statement "if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" (if "if") (parenthesized_expression "((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0))" (( "(") (binary_expression "(uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" (parenthesized_expression "(uVar28 != 0)" (( "(") (binary_expression "uVar28 != 0" (identifier "uVar28") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)" (( "(") (comma_expression "*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0" (assignment_expression "*(char *)plVar15 = (char)lVar38" (pointer_expression "*(char *)plVar15" (* "*") (cast_expression "(char *)plVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar15"))) (= "=") (cast_expression "(char)lVar38" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "lVar38"))) (, ",") (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" (( "(") (binary_expression "uVar21 & 2" (identifier "uVar21") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;\n              }" ({ "{") (expression_statement "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;" (assignment_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38" (pointer_expression "*(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" (* "*") (cast_expression "(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 2))" (( "(") (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 2)" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (parenthesized_expression "((uVar21 & 0xffffffff) - 2)" (( "(") (binary_expression "(uVar21 & 0xffffffff) - 2" (parenthesized_expression "(uVar21 & 0xffffffff)" (( "(") (binary_expression "uVar21 & 0xffffffff" (identifier "uVar21") (& "&") (number_literal "0xffffffff")) () ")")) (- "-") (number_literal "2")) () ")"))) () ")")))) (= "=") (cast_expression "(short)lVar38" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "lVar38"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" (else "else") (compound_statement "{\n              *(int *)plVar15 = (int)lVar38;\n              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;\n            }" ({ "{") (expression_statement "*(int *)plVar15 = (int)lVar38;" (assignment_expression "*(int *)plVar15 = (int)lVar38" (pointer_expression "*(int *)plVar15" (* "*") (cast_expression "(int *)plVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "plVar15"))) (= "=") (cast_expression "(int)lVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar38"))) (; ";")) (expression_statement "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;" (assignment_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38" (pointer_expression "*(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" (* "*") (cast_expression "(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 4))" (( "(") (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 4)" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (parenthesized_expression "((uVar21 & 0xffffffff) - 4)" (( "(") (binary_expression "(uVar21 & 0xffffffff) - 4" (parenthesized_expression "(uVar21 & 0xffffffff)" (( "(") (binary_expression "uVar21 & 0xffffffff" (identifier "uVar21") (& "&") (number_literal "0xffffffff")) () ")")) (- "-") (number_literal "4")) () ")"))) () ")")))) (= "=") (cast_expression "(int)lVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar38"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" (else "else") (compound_statement "{\n            *plVar15 = lVar38;\n            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;\n            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);\n            for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }\n          }" ({ "{") (expression_statement "*plVar15 = lVar38;" (assignment_expression "*plVar15 = lVar38" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (= "=") (identifier "lVar38")) (; ";")) (expression_statement "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;" (assignment_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38" (pointer_expression "*(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" (* "*") (cast_expression "(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + ((uVar21 & 0xffffffff) - 8))" (( "(") (binary_expression "(long)plVar15 + ((uVar21 & 0xffffffff) - 8)" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (parenthesized_expression "((uVar21 & 0xffffffff) - 8)" (( "(") (binary_expression "(uVar21 & 0xffffffff) - 8" (parenthesized_expression "(uVar21 & 0xffffffff)" (( "(") (binary_expression "uVar21 & 0xffffffff" (identifier "uVar21") (& "&") (number_literal "0xffffffff")) () ")")) (- "-") (number_literal "8")) () ")"))) () ")")))) (= "=") (identifier "lVar38")) (; ";")) (expression_statement "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);" (assignment_expression "plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (identifier "plVar34") (= "=") (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar15 + 1)" (( "(") (binary_expression "plVar15 + 1" (identifier "plVar15") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")")))) (; ";")) (for_statement "for (uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" (for "for") (( "(") (assignment_expression "uVar21 = (ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" (identifier "uVar21") (= "=") (call_expression "(ulong)(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3)" (( "(") (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28\n                                 >> 3" (binary_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28" (parenthesized_expression "((int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8))" (( "(") (binary_expression "(int)plVar15 -\n                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)plVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "plVar15")) (- "-") (cast_expression "(int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(plVar15 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(plVar15 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(plVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar15 + 1)" (( "(") (binary_expression "plVar15 + 1" (identifier "plVar15") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")"))))) () ")")) (+ "+") (identifier "uVar28")) (>> ">>") (number_literal "3")) () ")")))) (; ";") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar21 = uVar21 - 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n              *plVar34 = lVar38;\n              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;\n            }" ({ "{") (expression_statement "*plVar34 = lVar38;" (assignment_expression "*plVar34 = lVar38" (pointer_expression "*plVar34" (* "*") (identifier "plVar34")) (= "=") (identifier "lVar38")) (; ";")) (expression_statement "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;" (assignment_expression "plVar34 = plVar34 + (ulong)bVar51 * -2 + 1" (identifier "plVar34") (= "=") (binary_expression "plVar34 + (ulong)bVar51 * -2 + 1" (binary_expression "plVar34 + (ulong)bVar51 * -2" (identifier "plVar34") (+ "+") (binary_expression "(ulong)bVar51 * -2" (cast_expression "(ulong)bVar51" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar51")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(param_2 + 0x14) != 0) {\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x14) != 0" (pointer_expression "*(int *)(param_2 + 0x14)" (* "*") (cast_expression "(int *)(param_2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;\n            do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);\n          }" ({ "{") (expression_statement "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;" (assignment_expression "puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" (identifier "puVar32") (= "=") (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1" (binary_expression "local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1)" (identifier "local_90") (+ "+") (call_expression "(ulong)(*(int *)(param_2 + 0x14) - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(int *)(param_2 + 0x14) - 1)" (( "(") (binary_expression "*(int *)(param_2 + 0x14) - 1" (pointer_expression "*(int *)(param_2 + 0x14)" (* "*") (cast_expression "(int *)(param_2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")")))) (- "-") (number_literal "1")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            } while (puVar32 != local_90);" (do "do") (compound_statement "{\n              uVar21 = *local_90;\n              if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }\n              local_90 = local_90 + 1;\n              local_98 = local_98 + 1;\n            }" ({ "{") (expression_statement "uVar21 = *local_90;" (assignment_expression "uVar21 = *local_90" (identifier "uVar21") (= "=") (pointer_expression "*local_90" (* "*") (identifier "local_90"))) (; ";")) (if_statement "if (uVar21 != 0) {\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                lVar38 = *local_98;\n                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;\n                while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }\n              }" ({ "{") (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" (identifier "lVar38") (= "=") (pointer_expression "*local_98" (* "*") (identifier "local_98"))) (; ";")) (expression_statement "lVar16 = *(long *)(lVar38 + 0x38) - uVar21;" (assignment_expression "lVar16 = *(long *)(lVar38 + 0x38) - uVar21" (identifier "lVar16") (= "=") (binary_expression "*(long *)(lVar38 + 0x38) - uVar21" (pointer_expression "*(long *)(lVar38 + 0x38)" (* "*") (cast_expression "(long *)(lVar38 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar38 + 0x38)" (( "(") (binary_expression "lVar38 + 0x38" (identifier "lVar38") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (identifier "uVar21"))) (; ";")) (while_statement "while( true ) {\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  uVar29 = 0x2000;\n                  if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }\n                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);\n                  if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }\n                  lVar16 = lVar16 + uVar29;\n                  uVar21 = uVar21 - uVar29;\n                  if (uVar21 == 0) break;\n                  lVar38 = *local_98;\n                }" ({ "{") (expression_statement "uVar29 = 0x2000;" (assignment_expression "uVar29 = 0x2000" (identifier "uVar29") (= "=") (number_literal "0x2000")) (; ";")) (if_statement "if (uVar21 < 0x2001) {\n                    uVar29 = uVar21;\n                  }" (if "if") (parenthesized_expression "(uVar21 < 0x2001)" (( "(") (binary_expression "uVar21 < 0x2001" (identifier "uVar21") (< "<") (number_literal "0x2001")) () ")")) (compound_statement "{\n                    uVar29 = uVar21;\n                  }" ({ "{") (expression_statement "uVar29 = uVar21;" (assignment_expression "uVar29 = uVar21" (identifier "uVar29") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);" (assignment_expression "iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" (identifier "iVar7") (= "=") (call_expression "bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29)" (identifier "bfd_set_section_contents") (argument_list "(param_2,lVar38,plVar15,lVar16,uVar29)" (( "(") (identifier "param_2") (, ",") (identifier "lVar38") (, ",") (identifier "plVar15") (, ",") (identifier "lVar16") (, ",") (identifier "uVar29") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    FUN_0011c0d0(0,param_2,*local_98,0);\n                    return 0;\n                  }" ({ "{") (expression_statement "FUN_0011c0d0(0,param_2,*local_98,0);" (call_expression "FUN_0011c0d0(0,param_2,*local_98,0)" (identifier "FUN_0011c0d0") (argument_list "(0,param_2,*local_98,0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (pointer_expression "*local_98" (* "*") (identifier "local_98")) (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar16 = lVar16 + uVar29;" (assignment_expression "lVar16 = lVar16 + uVar29" (identifier "lVar16") (= "=") (binary_expression "lVar16 + uVar29" (identifier "lVar16") (+ "+") (identifier "uVar29"))) (; ";")) (expression_statement "uVar21 = uVar21 - uVar29;" (assignment_expression "uVar21 = uVar21 - uVar29" (identifier "uVar21") (= "=") (binary_expression "uVar21 - uVar29" (identifier "uVar21") (- "-") (identifier "uVar29"))) (; ";")) (if_statement "if (uVar21 == 0) break;" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar38 = *local_98;" (assignment_expression "lVar38 = *local_98" (identifier "lVar38") (= "=") (pointer_expression "*local_98" (* "*") (identifier "local_98"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" (identifier "local_90") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" (identifier "local_98") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar32 != local_90)" (( "(") (binary_expression "puVar32 != local_90" (identifier "puVar32") (!= "!=") (identifier "local_90")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);" (assignment_expression "iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(param_2[1] + 0x138))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0x138))" (( "(") (pointer_expression "**(code **)(param_2[1] + 0x138)" (* "*") (pointer_expression "*(code **)(param_2[1] + 0x138)" (* "*") (cast_expression "(code **)(param_2[1] + 0x138)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[1] + 0x138)" (( "(") (binary_expression "param_2[1] + 0x138" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x138")) () ")"))))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }\n          return 1;\n        }" ({ "{") (if_statement "if ((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" (if "if") (parenthesized_expression "((DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0))" (( "(") (binary_expression "(DAT_0012cab8 != 0) &&\n             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" (parenthesized_expression "(DAT_0012cab8 != 0)" (( "(") (binary_expression "DAT_0012cab8 != 0" (identifier "DAT_0012cab8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "iVar7 = bfd_alt_mach_code(param_2)" (identifier "iVar7") (= "=") (call_expression "bfd_alt_mach_code(param_2)" (identifier "bfd_alt_mach_code") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (comma_expression "lVar38 = DAT_0012cab8, iVar7 == 0" (assignment_expression "lVar38 = DAT_0012cab8" (identifier "lVar38") (= "=") (identifier "DAT_0012cab8")) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);\n            FUN_0011b660(uVar12,lVar38);\n            if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }\n            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);\n            FUN_0011b660(uVar12);\n            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;\n          }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);" (assignment_expression "uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5)" (identifier "dcgettext") (argument_list "(0,"this target does not support %lu alternative machine codes",5)" (( "(") (number_literal "0") (, ",") (string_literal ""this target does not support %lu alternative machine codes"" (" """) (string_content "this target does not support %lu alternative machine codes") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12,lVar38);" (call_expression "FUN_0011b660(uVar12,lVar38)" (identifier "FUN_0011b660") (argument_list "(uVar12,lVar38)" (( "(") (identifier "uVar12") (, ",") (identifier "lVar38") () ")"))) (; ";")) (if_statement "if (*(int *)(param_2[1] + 8) != 5) {\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" (if "if") (parenthesized_expression "(*(int *)(param_2[1] + 8) != 5)" (( "(") (binary_expression "*(int *)(param_2[1] + 8) != 5" (pointer_expression "*(int *)(param_2[1] + 8)" (* "*") (cast_expression "(int *)(param_2[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 8)" (( "(") (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              uVar12 = dcgettext(0,"ignoring the alternative value",5);\n              FUN_0011b660(uVar12);\n              return 1;\n            }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"ignoring the alternative value",5);" (assignment_expression "uVar12 = dcgettext(0,"ignoring the alternative value",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"ignoring the alternative value",5)" (identifier "dcgettext") (argument_list "(0,"ignoring the alternative value",5)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring the alternative value"" (" """) (string_content "ignoring the alternative value") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);" (assignment_expression "uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5)" (identifier "dcgettext") (argument_list "(0,"treating that number as an absolute e_machine value instead",5)" (( "(") (number_literal "0") (, ",") (string_literal ""treating that number as an absolute e_machine value instead"" (" """) (string_content "treating that number as an absolute e_machine value instead") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b660(uVar12);" (call_expression "FUN_0011b660(uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;" (assignment_expression "*(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8" (pointer_expression "*(short *)(param_2[0x1f] + 0x3a)" (* "*") (cast_expression "(short *)(param_2[0x1f] + 0x3a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x1f] + 0x3a)" (( "(") (binary_expression "param_2[0x1f] + 0x3a" (subscript_expression "param_2[0x1f]" (identifier "param_2") ([ "[") (number_literal "0x1f") (] "]")) (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (cast_expression "(short)DAT_0012cab8" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "DAT_0012cab8"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar12 = dcgettext(0,"error copying private BFD data",5);" (assignment_expression "uVar12 = dcgettext(0,"error copying private BFD data",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"error copying private BFD data",5)" (identifier "dcgettext") (argument_list "(0,"error copying private BFD data",5)" (( "(") (number_literal "0") (, ",") (string_literal ""error copying private BFD data"" (" """) (string_content "error copying private BFD data") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00109580;" (goto "goto") (statement_identifier "LAB_00109580") (; ";")) (} "}")))) (expression_statement "uVar28 = DAT_0012ca84;" (assignment_expression "uVar28 = DAT_0012ca84" (identifier "uVar28") (= "=") (identifier "DAT_0012ca84")) (; ";")) (if_statement "if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }\n      else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" (if "if") (parenthesized_expression "((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0))" (( "(") (binary_expression "(DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" (parenthesized_expression "(DAT_0012ca84 == 1)" (( "(") (binary_expression "DAT_0012ca84 == 1" (identifier "DAT_0012ca84") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar28 = DAT_0012ca84 & 1, uVar28 == 0)" (( "(") (comma_expression "uVar28 = DAT_0012ca84 & 1, uVar28 == 0" (assignment_expression "uVar28 = DAT_0012ca84 & 1" (identifier "uVar28") (= "=") (binary_expression "DAT_0012ca84 & 1" (identifier "DAT_0012ca84") (& "&") (number_literal "1"))) (, ",") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (DAT_0012ca80 == 0) goto LAB_00109056;\n        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);\n        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      }" ({ "{") (if_statement "if (DAT_0012ca80 == 0) goto LAB_00109056;" (if "if") (parenthesized_expression "(DAT_0012ca80 == 0)" (( "(") (binary_expression "DAT_0012ca80 == 0" (identifier "DAT_0012ca80") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109056;" (goto "goto") (statement_identifier "LAB_00109056") (; ";"))) (expression_statement "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" (identifier "uVar12") (= "=") (call_expression "FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0)" (identifier "FUN_0011bfe0") (argument_list "(param_1,DAT_0012ca80,uVar28,0)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0012ca80") (, ",") (identifier "uVar28") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""--elf-stt-common=[yes|no] is unsupported on `%s\'"" (" """) (string_content "--elf-stt-common=[yes|no] is unsupported on `%s") (escape_sequence "\'") (" """))) (; ";")) (} "}")) (else_clause "else {\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" (else "else") (compound_statement "{\n        uVar12 = FUN_0011bfe0(param_1);\n        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\n      }" ({ "{") (expression_statement "uVar12 = FUN_0011bfe0(param_1);" (assignment_expression "uVar12 = FUN_0011bfe0(param_1)" (identifier "uVar12") (= "=") (call_expression "FUN_0011bfe0(param_1)" (identifier "FUN_0011bfe0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" (identifier "pcVar39") (= "=") (string_literal ""--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" (" """) (string_content "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s") (escape_sequence "\'") (" """))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0010952f:\n    uVar13 = dcgettext(0,pcVar39,5);" (statement_identifier "LAB_0010952f") (: ":") (expression_statement "uVar13 = dcgettext(0,pcVar39,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar39,5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,pcVar39,5)" (identifier "dcgettext") (argument_list "(0,pcVar39,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar39") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0011b660(uVar13,uVar12);" (call_expression "FUN_0011b660(uVar13,uVar12)" (identifier "FUN_0011b660") (argument_list "(uVar13,uVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (labeled_statement "LAB_0010b3bc:\n  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" (statement_identifier "LAB_0010b3bc") (: ":") (if_statement "if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;" (if "if") (parenthesized_expression "((undefined1 *)((long)pvVar26 + sVar17) <= puVar30)" (( "(") (binary_expression "(undefined1 *)((long)pvVar26 + sVar17) <= puVar30" (cast_expression "(undefined1 *)((long)pvVar26 + sVar17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar26 + sVar17)" (( "(") (binary_expression "(long)pvVar26 + sVar17" (cast_expression "(long)pvVar26" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar26")) (+ "+") (identifier "sVar17")) () ")"))) (<= "<=") (identifier "puVar30")) () ")")) (goto_statement "goto LAB_0010b3c1;" (goto "goto") (statement_identifier "LAB_0010b3c1") (; ";")))) (expression_statement "*puVar30 = (char)uVar29;" (assignment_expression "*puVar30 = (char)uVar29" (pointer_expression "*puVar30" (* "*") (identifier "puVar30")) (= "=") (cast_expression "(char)uVar29" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar29"))) (; ";")) (if_statement "if (uVar29 == 0) goto LAB_0010b3c1;" (if "if") (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010b3c1;" (goto "goto") (statement_identifier "LAB_0010b3c1") (; ";"))) (expression_statement "uVar29 = uVar29 >> 8;" (assignment_expression "uVar29 = uVar29 >> 8" (identifier "uVar29") (= "=") (binary_expression "uVar29 >> 8" (identifier "uVar29") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 1" (identifier "puVar30") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0010b3bc;" (goto "goto") (statement_identifier "LAB_0010b3bc") (; ";")) (labeled_statement "LAB_0010b3c1:\n  psVar6[0xb] = 0;" (statement_identifier "LAB_0010b3c1") (: ":") (expression_statement "psVar6[0xb] = 0;" (assignment_expression "psVar6[0xb] = 0" (subscript_expression "psVar6[0xb]" (identifier "psVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "bVar49 = true;" (assignment_expression "bVar49 = true" (identifier "bVar49") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0010b255;" (goto "goto") (statement_identifier "LAB_0010b255") (; ";")) (} "}")))) (} "")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *ibfd,type_2 *obfd,type_3 *var_25)

{
  type_4 *__dest;
  type_5 **var_151;
  type_6 *var_76;
  char var_134;
  type_7 var_1;
  type_7 var_2;
  type_8 var_31;
  type_9 *ppVar7;
  type_10 *pbVar8;
  type_11 var_92;
  type_12 *p_Var10;
  type_13 var_89;
  type_13 var_90;
  type_13 *var_79;
  type_14 *var_62;
  type_15 *var_133;
  char cVar16;
  type_6 *__dest_00;
  int var_7;
  type_16 bVar18;
  type_1 var_28;
  int var_30;
  type_17 uVar21;
  int var_75;
  char *var_74;
  type_18 *var_57;
  type_19 *var_60;
  type_20 *var_98;
  char *pcVar26;
  char *__format;
  type_21 uVar27;
  type_5 **var_50;
  type_5 *paVar29;
  long var_86;
  size_t var_94;
  size_t var_101;
  type_19 *var_131;
  type_19 *paVar34;
  type_22 var_65;
  long *var_115;
  type_23 *var_108;
  int *piVar38;
  char *pcVar39;
  void *var_77;
  type_13 var_15;
  type_13 var_46;
  type_19 *var_132;
  type_22 var_88;
  type_22 var_72;
  type_24 *var_171;
  type_4 var_20;
  type_23 *var_110;
  type_23 *var_109;
  type_13 *var_82;
  type_22 *var_116;
  type_14 *var_55;
  type_25 *paVar53;
  type_13 *var_78;
  type_13 *var_83;
  type_13 *var_85;
  long var_27;
  char *var_95;
  type_26 *pcVar59;
  type_27 *var_33;
  type_28 *piVar61;
  type_27 *var_34;
  type_28 *piVar63;
  long *var_162;
  type_22 var_73;
  type_22 var_87;
  type_13 *var_80;
  type_6 *var_71;
  bool var_35;
  bool bVar70;
  type_27 bVar71;
  type_24 auVar72 [16];
  type_5 **var_81;
  type_22 var_53;
  type_6 *var_93;
  type_22 var_70;
  type_13 local_c8;
  type_13 local_c0;
  type_13 local_b8;
  void *var_153;
  char *var_107;
  type_22 var_119;
  long *var_117;
  type_22 *var_163;
  type_6 *syms;
  type_6 *strings;
  char file_alignment [20];
  type_6 *contents;
  type_21 local_50;
  
  bVar71 = 0;
  var_1 = ibfd->xvec->byteorder;
  var_2 = obfd->xvec->byteorder;
  if ((var_1 != var_2 && var_1 != var_3) && (var_2 != var_3)) {
    var_74 = (char *)var_4(0,"Unable to change endianness of input file(s)",5);
    var_5(var_74);
    return 0;
  }
  var_7 = var_6(obfd,ibfd->field_0x44 & 7);
  var_74 = (char *)0x0;
  if (var_7 == 0) {
LAB_00109580:
    var_8((char *)0x0,obfd,(type_19 *)0x0,var_74);
  }
  else {
    if (ibfd->sections == (type_23 *)0x0) {
      var_74 = var_9(ibfd);
      var_95 = "error: the input file \'%s\' has no sections";
    }
    else {
      if (ibfd->xvec->flavour == var_10) {
LAB_00109056:
        if (var_11 != 0) {
          var_74 = obfd->filename;
          var_95 = ibfd->xvec->name;
          pcVar39 = obfd->xvec->name;
          pcVar26 = var_9(ibfd);
          __format = (char *)var_4(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
          var_12(__format,pcVar26,var_95,var_74,pcVar39);
        }
        var_27 = 0;
        if (var_13 == 0) {
          var_15 = set_start;
          if (var_14 == 0) {
            var_15 = ibfd->start_address;
          }
          var_27 = var_15 + var_16;
        }
        if ((obfd->field_0x44 & 7) != 3) {
          var_20 = ~bfd_flags_to_clear & obfd->xvec->object_flags &
                   (var_17 | *(type_4 *)&ibfd->field_0x44 >> 5 & 0xfffff);
          if (var_18 == var_19) {
            var_20 = var_20 & 0xfffffffe;
          }
          var_7 = var_21(obfd,var_27);
          if ((var_7 == 0) || (var_7 = var_22(obfd,var_20), var_7 == 0))
          goto LAB_001091b0;
        }
        bVar18 = var_23(ibfd);
        var_20 = var_24(ibfd);
        var_65 = (type_22)var_20;
        if (var_25 != (type_3 *)0x0) {
          var_27 = var_26(ibfd);
          if ((var_27 == 0) || (var_27 = var_26(ibfd), *(int *)(var_27 + 0xc) == 0)) {
            bVar18 = var_25->arch;
            var_65 = (type_22)(type_4)var_25->mach;
          }
          else {
            var_74 = var_9(ibfd);
            var_95 = (char *)var_4(0,"Input file `%s\' ignores binary architecture parameter.",
                                        5);
            var_5(var_95,var_74);
          }
        }
        var_28 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar18,var_65);
        if (var_28 == 0) {
          if ((ibfd->field_0x47 & 4) != 0) {
LAB_0010916a:
            var_7 = var_23(ibfd);
            if (var_7 == 0) {
              var_74 = var_9(ibfd);
              var_95 = "Unable to recognise the format of the input file `%s\'";
            }
            else {
              uVar27 = var_24(ibfd);
              uVar21 = var_23(ibfd);
              var_74 = (char *)var_29(uVar21,uVar27);
              var_95 = "Output file cannot represent architecture `%s\'";
            }
            var_95 = (char *)var_4(0,var_95,5);
            var_5(var_95,var_74);
            return 0;
          }
          var_7 = var_23(ibfd);
          var_30 = var_23(obfd);
          if (var_7 != var_30) goto LAB_0010916a;
        }
        var_7 = var_6(obfd,ibfd->field_0x44 & 7);
        if (var_7 == 0) {
LAB_001091b0:
          var_8((char *)0x0,ibfd,(type_19 *)0x0,(char *)0x0);
          return 0;
        }
        var_31 = obfd->xvec->flavour;
        var_35 = var_31 < var_32;
        bVar70 = var_31 == var_32;
        if (bVar70) {
          var_27 = 4;
          var_33 = (type_27 *)obfd->xvec->name;
          var_34 = &DAT_0011e166;
          do {
            if (var_27 == 0) break;
            var_27 = var_27 + -1;
            var_35 = *var_33 < *var_34;
            bVar70 = *var_33 == *var_34;
            var_33 = var_33 + (type_22)bVar71 * -2 + 1;
            var_34 = var_34 + (type_22)bVar71 * -2 + 1;
          } while (bVar70);
          if ((!var_35 && !bVar70) == var_35) {
            ppVar7 = (obfd->tdata).pe_obj_data;
            var_31 = ibfd->xvec->flavour;
            var_35 = var_31 < var_32;
            bVar70 = var_31 == var_32;
            if (bVar70) {
              var_27 = 4;
              var_33 = (type_27 *)ibfd->xvec->name;
              var_34 = &DAT_0011e166;
              do {
                if (var_27 == 0) break;
                var_27 = var_27 + -1;
                var_35 = *var_33 < *var_34;
                bVar70 = *var_33 == *var_34;
                var_33 = var_33 + (type_22)bVar71 * -2 + 1;
                var_34 = var_34 + (type_22)bVar71 * -2 + 1;
              } while (bVar70);
              if ((!var_35 && !bVar70) == var_35) {
                piVar61 = &((ibfd->tdata).pe_obj_data)->pe_opthdr;
                piVar63 = &ppVar7->pe_opthdr;
                for (var_27 = 0x37; var_27 != 0; var_27 = var_27 + -1) {
                  var_134 = piVar61->MajorLinkerVersion;
                  cVar16 = piVar61->MinorLinkerVersion;
                  uVar21 = *(type_17 *)&piVar61->field_0x4;
                  piVar63->Magic = piVar61->Magic;
                  piVar63->MajorLinkerVersion = var_134;
                  piVar63->MinorLinkerVersion = cVar16;
                  *(type_17 *)&piVar63->field_0x4 = uVar21;
                  piVar61 = (type_28 *)((long)piVar61 + (type_22)bVar71 * -0x10 + 8)
                  ;
                  piVar63 = (type_28 *)((long)piVar63 + (type_22)bVar71 * -0x10 + 8)
                  ;
                }
              }
            }
            var_15 = var_36;
            if (var_36 == 0xffffffffffffffff) {
              var_36 = 0x200;
              var_15 = 0x200;
            }
            else {
              (ppVar7->pe_opthdr).FileAlignment = var_36;
            }
            if (var_37 != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfHeapCommit = var_37;
            }
            if (var_38 != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfHeapCommit = var_38;
            }
            if (var_39 != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).ImageBase = var_39;
            }
            var_46 = var_40;
            if (var_40 == 0xffffffffffffffff) {
              var_40 = 0x1000;
              var_46 = 0x1000;
            }
            else {
              (ppVar7->pe_opthdr).SectionAlignment = var_40;
            }
            if (var_41 != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfStackCommit = var_41;
            }
            if (var_42 != 0xffffffffffffffff) {
              (ppVar7->pe_opthdr).SizeOfStackCommit = var_42;
            }
            if (var_43 != -1) {
              (ppVar7->pe_opthdr).Subsystem = var_43;
            }
            if (var_44 != -1) {
              (ppVar7->pe_opthdr).MajorSubsystemVersion = var_44;
            }
            if (var_45 != -1) {
              (ppVar7->pe_opthdr).MinorSubsystemVersion = var_45;
            }
            if (var_46 < var_15) {
              var_47(file_alignment,"%016lx");
              var_47((char *)&contents,"%016lx",var_40);
              var_74 = (char *)var_4(0,
                                          "warning: file alignment (0x%s) > section alignment (0x%s)"
                                          ,5);
              var_5(var_74,file_alignment,&contents);
            }
          }
        }
        var_50 = var_48;
        if (var_48 != (type_5 **)0x0) {
          var_49(var_48);
        }
        if (var_50 != var_51) {
          var_49(var_51);
        }
        var_48 = (type_5 **)0x0;
        var_51 = (type_5 **)0x0;
        var_27 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);
        if (var_27 < 0) goto LAB_001091b0;
        var_51 = (type_5 **)var_52(var_27);
        var_48 = var_51;
        var_53 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,var_51);
        if ((long)var_53 < 0) goto LAB_001091b0;
        if (var_53 == 0) {
          var_49(var_48);
          var_48 = (type_5 **)0x0;
          var_51 = (type_5 **)0x0;
        }
        pcVar59 = setup_section;
        var_54(ibfd,setup_section,obfd);
        var_55 = add_sections;
        if ((var_13 == 0) &&
           (pcVar59 = (type_26 *)obfd, var_28 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd)
           , var_55 = add_sections, var_28 == 0)) {
          status = 1;
          var_74 = (char *)var_4(0,"error in private header data",5);
          pcVar59 = (type_26 *)ibfd;
          var_8((char *)0x0,ibfd,(type_19 *)0x0,var_74);
          var_55 = add_sections;
        }
        for (; var_74 = (char *)pcVar59, var_62 = update_sections, var_55 != (type_14 *)0x0;
            var_55 = var_55->next) {
          var_20 = 0x128;
          var_57 = var_56(var_55->name,0,0x40);
          if (var_57 != (type_18 *)0x0) {
            var_20 = var_57->flags | 0x100;
          }
          var_27 = var_58(obfd,var_55->name);
          if (var_27 != 0) {
            var_74 = var_55->name;
            var_95 = "can\'t add section \'%s\'";
            goto LAB_00109ad0;
          }
          var_60 = (type_19 *)var_59(obfd,var_55->name,var_20 | 0x100000);
          var_55->section = var_60;
          if (var_60 == (type_19 *)0x0) {
            var_74 = var_55->name;
            var_95 = "can\'t create section `%s\'";
            goto LAB_00109ad0;
          }
          var_28 = var_61(obfd,var_60,var_55->size);
          if (var_28 == 0) goto LAB_00109aa8;
          var_57 = var_56(var_55->name,0,0xc);
          if (var_57 != (type_18 *)0x0) {
            var_15 = var_57->vma_val;
            var_60 = var_55->section;
            var_60->field_0x24 = var_60->field_0x24 | 1;
            var_60->lma = var_15;
            var_60->vma = var_15;
          }
          pcVar59 = (type_26 *)0x0;
          var_57 = var_56(var_55->name,0,0x30);
          if (var_57 != (type_18 *)0x0) {
            var_55->section->lma = var_57->lma_val;
          }
        }
        for (; var_62 != (type_14 *)0x0; var_62 = var_62->next) {
          var_60 = (type_19 *)var_58(ibfd,var_62->name);
          var_62->section = var_60;
          if (var_60 == (type_19 *)0x0) {
            var_74 = var_62->name;
            var_95 = "error: %s not found, can\'t be updated";
            goto LAB_0010952f;
          }
          var_60 = var_60->output_section;
          var_74 = (char *)var_60;
          var_7 = var_61(obfd,var_60,var_62->size);
          if (var_7 == 0) {
            var_8((char *)0x0,obfd,var_60,(char *)0x0);
            return 0;
          }
        }
        if (var_63 != 0) {
          var_74 = ".gnu.build.attributes";
          auVar72 = var_58(ibfd);
          var_60 = auVar72._0_8_;
          if (((var_60 != (type_19 *)0x0) && (var_63 != 0)) &&
             (ibfd->xvec->flavour == var_10)) {
            var_74 = (char *)&var_60->used_by_bfd;
            var_28 = var_64((type_2 *)var_60,(type_19 *)var_74,auVar72._8_8_);
            if (var_28 != 0) {
              var_65 = var_60->size;
              var_74 = (char *)ibfd;
              if (var_65 == 0) {
                var_95 = (char *)var_4(0,"warning: note section is empty",5);
                var_8((char *)0x0,ibfd,var_60,var_95);
                var_63 = 0;
              }
              else {
                var_7 = var_66(ibfd,var_60,&merged_notes);
                __dest_00 = merged_notes;
                if (var_7 == 0) {
                  var_95 = (char *)var_4(0,"warning: could not load note section",5);
                  var_8((char *)0x0,ibfd,var_60,var_95);
                  var_49(merged_notes);
                  merged_notes = (type_6 *)0x0;
                  var_63 = 0;
                }
                else {
                  var_27 = var_67(ibfd,var_60);
                  if (0 < var_27) {
                    var_77 = (void *)var_52(var_27);
                    var_74 = (char *)var_60;
                    var_27 = var_68(ibfd,var_60,var_77);
                    var_49(var_77);
                    if (var_27 == 0) goto LAB_0010ae6f;
                    var_81 = (type_5 **)0x0;
                    goto LAB_0010b098;
                  }
LAB_0010ae6f:
                  var_74 = (char *)0x48;
                  var_81 = (type_5 **)var_69(var_65 / 0xc,0x48,var_65 % 0xc);
                  var_7 = 0;
                  local_c0 = 0;
                  var_153 = (void *)0x0;
                  local_c8 = 0;
                  local_b8 = 0;
                  var_30 = 0;
                  var_75 = 0;
                  var_78 = (type_13 *)var_81;
                  var_71 = __dest_00;
                  var_70 = var_65;
                  while (0xb < var_70) {
                    var_15 = (*ibfd->xvec->bfd_getx32)(var_71);
                    pbVar8 = ibfd->xvec;
                    var_74 = (char *)(var_15 + 3 & 0xfffffffffffffffc);
                    *var_78 = (type_13)var_74;
                    var_15 = (*pbVar8->bfd_getx32)(var_71 + 4);
                    pbVar8 = ibfd->xvec;
                    var_72 = var_15 + 3 & 0xfffffffffffffffc;
                    var_78[1] = var_72;
                    var_15 = (*pbVar8->bfd_getx32)(var_71 + 8);
                    var_78[2] = var_15;
                    if (1 < var_15 - 0x100) {
                      var_74 = "corrupt GNU build attribute note: wrong note type";
                      var_95 = (char *)var_4(0,
                                                  "corrupt GNU build attribute note: wrong note type"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    var_27 = (long)&((type_19 *)var_74)->name + var_72;
                    var_73 = var_27 + 0xc;
                    if (var_70 < var_73) {
                      var_74 = "corrupt GNU build attribute note: note too big";
                      var_95 = (char *)var_4(0,"corrupt GNU build attribute note: note too big"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if (var_74 < (type_19 *)0x2) {
                      var_74 = "corrupt GNU build attribute note: name too small";
                      var_95 = (char *)var_4(0,
                                                  "corrupt GNU build attribute note: name too small"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    var_76 = var_71 + 0xc + (long)var_74;
                    var_78[3] = (type_13)(var_71 + 0xc);
                    var_78[4] = (type_13)var_76;
                    var_70 = var_70 + (-0xc - var_27);
                    if (var_71[0xc] == '$') {
                      if ((var_71[0xd] == '\x01') && (var_71[0xe] == '1')) {
                        var_7 = var_7 + 1;
                      }
                    }
                    else if ((((type_19 *)0x4 < var_74) && (var_71[0xc] == 'G')) &&
                            ((var_71[0xd] == 'A' &&
                             ((var_71[0xe] == '$' && (var_71[0xf] == '\x01')))))) {
                      if (var_71[0x10] == '2') {
                        var_75 = var_75 + 1;
                      }
                      else {
                        if (var_71[0x10] != '3') {
                          var_74 = "corrupt GNU build attribute note: unsupported version";
                          var_95 = (char *)var_4(0,
                                                  "corrupt GNU build attribute note: unsupported version"
                                                  ,5);
                          goto LAB_0010b063;
                        }
                        var_30 = var_30 + 1;
                      }
                    }
                    if (var_72 == 4) {
                      var_46 = (*ibfd->xvec->bfd_getx32)(var_76);
                      var_77 = (void *)0xffffffffffffffff;
                    }
                    else if (var_72 < 5) {
                      if (var_72 != 0) {
LAB_0010b046:
                        var_74 = "corrupt GNU build attribute note: bad description size";
                        var_95 = (char *)var_4(0,
                                                  "corrupt GNU build attribute note: bad description size"
                                                  ,5);
                        goto LAB_0010b063;
                      }
                      var_77 = (void *)0x0;
                      var_46 = 0;
                    }
                    else if (var_72 == 8) {
                      pbVar8 = ibfd->xvec;
                      if ((pbVar8->flavour == var_10) &&
                         (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                        var_46 = (*pbVar8->bfd_getx64)(var_76);
                        var_77 = (void *)0xffffffffffffffff;
                      }
                      else {
                        var_46 = (*pbVar8->bfd_getx32)(var_76);
                        var_77 = (void *)(*ibfd->xvec->bfd_getx32)(var_76 + 4);
                      }
                    }
                    else {
                      if (var_72 != 0x10) goto LAB_0010b046;
                      var_46 = (*ibfd->xvec->bfd_getx64)(var_76);
                      var_77 = (void *)(*ibfd->xvec->bfd_getx64)(var_76 + 8);
                    }
                    if (var_15 == 0x100) {
                      if (var_46 == 0) {
                        var_46 = local_c8;
                      }
                      if (var_77 == (void *)0x0) {
                        var_77 = (void *)local_c0;
                      }
                      var_78[6] = var_46;
                      var_78[7] = (type_13)var_77;
                      local_c8 = var_46;
                      local_c0 = (type_13)var_77;
                    }
                    else {
                      if (var_46 == 0) {
                        var_46 = local_b8;
                      }
                      if (var_77 == (void *)0x0) {
                        var_77 = var_153;
                      }
                      var_78[6] = var_46;
                      var_78[7] = (type_13)var_77;
                      local_b8 = var_46;
                      var_153 = var_77;
                    }
                    if (*(char *)((var_78[3] - 1) + *var_78) != '\0') {
                      var_74 = "corrupt GNU build attribute note: name not NUL terminated";
                      var_95 = (char *)var_4(0,
                                                  "corrupt GNU build attribute note: name not NUL terminated"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    var_78 = var_78 + 9;
                    var_71 = var_71 + var_73;
                  }
                  if (var_70 == 0) {
                    if (var_7 == 0 && (var_75 == 0 && var_30 == 0)) {
                      var_74 = "bad GNU build attribute notes: no known versions detected";
                      var_95 = (char *)var_4(0,
                                                  "bad GNU build attribute notes: no known versions detected"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if (((var_7 != 0) && (var_75 != 0 || var_30 != 0)) ||
                       ((var_75 != 0 && (var_30 != 0)))) {
                      var_74 = "bad GNU build attribute notes: multiple different versions";
                      var_95 = (char *)var_4(0,
                                                  "bad GNU build attribute notes: multiple different versions"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    if ((var_7 == 1 || var_75 == 1) || (var_30 == 1)) goto LAB_0010b098;
                    var_20 = -(type_4)(var_7 == 0) & 2;
                    var_27 = (long)(int)(var_20 + 1);
                    if (*(char *)((long)var_81[3] + var_27) != '\x01') {
                      var_74 = "bad GNU build attribute notes: first note not version note";
                      var_95 = (char *)var_4(0,
                                                  "bad GNU build attribute notes: first note not version note"
                                                  ,5);
                      goto LAB_0010b063;
                    }
                    var_7 = var_20 + 2;
                    var_35 = false;
                    var_86 = (long)var_7;
                    var_80 = (type_13 *)var_81;
LAB_0010b255:
                    var_79 = var_80;
                    var_80 = var_79 + 9;
                    if (var_80 < var_78) {
                      if (var_79[0xb] == 0x100) {
                        var_74 = (char *)var_79[0xc];
                        var_83 = (type_13 *)0x0;
                        for (var_82 = var_79; var_81 <= var_82; var_82 = var_82 + -9) {
                          var_77 = (void *)var_82[3];
                          var_85 = var_83;
                          if ((((var_83 != (type_13 *)0x0) || (var_82[1] == 0)) ||
                              (var_85 = var_82, var_82[2] != 0x101)) &&
                             ((var_83 = var_85,
                              *(char *)((long)&((type_19 *)var_74)->name + var_27) ==
                              *(char *)((long)var_77 + var_27) && (var_82[2] == 0x100)))) {
                            if (*(char *)((long)var_77 + var_27) != '\x04') {
                              if ((((*var_82 == *var_80) &&
                                   (var_75 = var_84(var_77,var_74,*var_82), var_75 == 0)) &&
                                  ((var_72 = var_82[7], var_72 != 0 &&
                                   (var_73 = var_79[0x10], var_73 != 0)))) &&
                                 ((0xfffffffffffffff0 < var_72 ||
                                  (var_79[0xf] <= (var_72 + 0xf & 0xfffffffffffffff0))))) {
                                var_79[0xb] = 0;
                                if (var_72 < var_73) {
                                  var_82[7] = var_73;
                                }
                                var_35 = true;
                                if (var_30 != 0) {
                                  *(type_17 *)(var_82 + 8) = 1;
                                }
                              }
                              else if (var_30 == 0) {
                                if (((var_79[10] == 0) && (var_85 != (type_13 *)0x0)) &&
                                   (var_85[2] == 0)) {
                                  var_85[2] = 0x100;
                                }
                              }
                              else {
                                *(type_17 *)(var_79 + 0x11) = 1;
                                var_79[0xb] = 0x101;
                                *(type_17 *)(var_82 + 8) = 1;
                                var_82[2] = 0x101;
                              }
                              break;
                            }
                            var_72 = 0;
                            for (var_73 = 0; (type_4)((int)*var_80 - var_7) != var_73;
                                var_73 = var_73 + 1) {
                              var_72 = var_72 | (type_22)*(type_27 *)((long)&((type_19 *)var_74)->name
                                                                + var_73 + var_86) <<
                                                ((char)var_73 * '\b' & 0x3fU);
                            }
                            var_15 = *var_82;
                            var_87 = 0;
                            for (var_73 = 0; (type_4)((int)var_15 - var_7) != var_73;
                                var_73 = var_73 + 1) {
                              var_87 = var_87 | (type_22)(type_27)((type_24 *)((long)var_77 + var_86)
                                                             )[var_73] <<
                                                ((char)var_73 * '\b' & 0x3fU);
                            }
                            var_88 = 0;
                            var_72 = var_72 + var_87;
                            for (var_73 = var_72; var_73 != 0; var_73 = var_73 >> 8) {
                              var_88 = (type_22)((int)var_88 + 1);
                            }
                            if (var_88 < var_15 - var_86) {
                              var_171 = (type_24 *)((long)var_77 + var_86);
                              goto LAB_0010b3bc;
                            }
                          }
                        }
                      }
                      goto LAB_0010b255;
                    }
                    if (!var_35) goto LAB_0010b098;
                    var_132 = (type_19 *)var_52(var_65);
                    var_15 = 0;
                    var_93 = __dest_00;
                    var_131 = var_132;
                    for (var_80 = (type_13 *)var_81; var_80 < var_78; var_80 = var_80 + 9) {
                      var_46 = *var_80;
                      var_89 = var_80[1];
                      var_90 = var_80[2];
                      var_94 = var_89 + var_46 + 0xc;
                      paVar34 = var_131;
                      if (var_90 != 0) {
                        if ((int)var_80[8] == 0) {
                          var_91(var_131,var_93,var_94);
                          paVar34 = (type_19 *)((long)&var_131->index + var_89 + var_46);
                        }
                        else {
                          var_77 = (void *)((long)&var_131->name + 4);
                          var_92 = var_80[6];
                          __dest = &var_131->index;
                          p_Var10 = ibfd->xvec->bfd_putx32;
                          paVar34 = (type_19 *)((long)__dest + var_46);
                          if ((var_92 == var_70) && (var_80[7] == var_15)) {
                            (*p_Var10)(var_46,var_131);
                            (*ibfd->xvec->bfd_putx32)(0,var_77);
                            (*ibfd->xvec->bfd_putx32)(var_90,&var_131->id);
                            var_91(__dest,(void *)var_80[3],var_46);
                          }
                          else {
                            (*p_Var10)(var_46,var_131);
                            var_15 = 8;
                            if (ibfd->xvec->flavour == var_10) {
                              var_15 = (type_22)(((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident
                                               [4] == '\x02') * 8 + 8;
                            }
                            (*ibfd->xvec->bfd_putx32)(var_15,var_77);
                            (*ibfd->xvec->bfd_putx32)(var_90,&var_131->id);
                            var_91(__dest,(void *)var_80[3],var_46);
                            pbVar8 = ibfd->xvec;
                            if ((pbVar8->flavour == var_10) &&
                               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                              (*pbVar8->bfd_putx64)(var_92,paVar34);
                              (*ibfd->xvec->bfd_putx64)(var_80[7],&paVar34->id);
                              paVar34 = (type_19 *)&paVar34->next;
                            }
                            else {
                              (*pbVar8->bfd_putx32)(var_92,paVar34);
                              (*ibfd->xvec->bfd_putx32)
                                        (var_80[7],(void *)((long)&paVar34->name + 4));
                              paVar34 = (type_19 *)&paVar34->id;
                            }
                          }
                        }
                        var_70 = var_80[6];
                        var_15 = var_80[7];
                      }
                      var_93 = var_93 + var_94;
                      var_131 = paVar34;
                    }
                    var_94 = (long)var_131 - (long)var_132;
                    var_74 = (char *)var_132;
                    var_91(__dest_00,var_132,var_94);
                    var_49(var_132);
                    var_49(var_81);
                    merged_size = var_94;
                    if (var_65 != var_94) {
                      var_74 = (char *)var_60->output_section;
                      if (((type_19 *)var_74 != (type_19 *)0x0) &&
                         (var_7 = var_61(obfd,var_74,var_94), var_7 != 0))
                      goto LAB_0010941b;
                      var_95 = (char *)var_4(0,"warning: failed to set merged notes size",5);
                      var_74 = (char *)obfd;
                      var_8((char *)0x0,obfd,var_60,var_95);
                    }
                  }
                  else {
                    var_74 = "corrupt GNU build attribute notes: excess data at end";
                    var_95 = (char *)var_4(0,
                                                "corrupt GNU build attribute notes: excess data at end"
                                                ,5);
LAB_0010b063:
                    if (var_95 != (char *)0x0) {
                      var_96();
                      var_74 = (char *)ibfd;
                      var_8((char *)0x0,ibfd,var_60,var_95);
                      status = 1;
                    }
LAB_0010b098:
                    var_49(var_81);
                  }
                  var_49(merged_notes);
                  merged_notes = (type_6 *)0x0;
                  var_63 = 0;
                  merged_size = 0;
                }
              }
            }
          }
        }
LAB_0010941b:
        pcVar59 = (type_26 *)var_74;
        for (var_55 = dump_sections; var_55 != (type_14 *)0x0; var_55 = var_55->next) {
          var_60 = (type_19 *)var_58(ibfd,var_55->name);
          pcVar59 = (type_26 *)ibfd;
          if (var_60 == (type_19 *)0x0) {
            var_74 = var_55->name;
            var_95 = (char *)var_4(0,"can\'t dump section \'%s\' - it does not exist",5);
            var_8((char *)0x0,ibfd,(type_19 *)0x0,var_95,var_74);
          }
          else {
            var_74 = "can\'t dump section - it has no contents";
            if ((var_60->flags & 0x100) != 0) {
              var_94 = var_60->size;
              if (var_94 != 0) {
                var_98 = var_97(var_55->filename,"w");
                if (var_98 == (type_20 *)0x0) {
                  var_74 = (char *)var_4(0,"could not open section dump file",5);
                  pcVar59 = (type_26 *)0x0;
                  var_8(var_55->filename,(type_2 *)0x0,(type_19 *)0x0,var_74);
                }
                else {
                  var_7 = var_99(ibfd,var_60,&contents);
                  if (var_7 == 0) {
                    var_74 = (char *)var_4(0,"could not retrieve section contents",5);
                    var_8((char *)0x0,ibfd,var_60,var_74);
                  }
                  else {
                    pcVar59 = (type_26 *)0x1;
                    var_101 = var_100(contents,1,var_94,var_98);
                    if (var_94 != var_101) {
                      piVar38 = var_102();
                      var_95 = var_103(*piVar38);
                      var_74 = var_55->filename;
                      pcVar39 = (char *)var_4(0,
                                                  "error writing section contents to %s (error: %s)"
                                                  ,5);
                      var_5(pcVar39,var_74,var_95);
                      var_49(contents);
                      return 0;
                    }
                  }
                  var_104(var_98);
                  var_49(contents);
                }
                goto LAB_001094a8;
              }
              var_74 = "can\'t dump section - it is empty";
            }
            var_74 = (char *)var_4(0,var_74,5);
            var_8((char *)0x0,ibfd,var_60,var_74);
          }
LAB_001094a8:
        }
        var_107 = var_105;
        if (var_105 != (char *)0x0) {
          var_27 = var_58(obfd,".gnu_debuglink");
          if (var_27 == 0) {
            pcVar59 = (type_26 *)var_105;
            var_107 = (char *)var_106();
            if (var_107 == (char *)0x0) {
              var_95 = "cannot create debug link section `%s\'";
              var_74 = var_105;
LAB_00109ad0:
              var_95 = (char *)var_4(0,var_95,5);
              var_8((char *)0x0,obfd,(type_19 *)0x0,var_95,var_74);
              return 0;
            }
            if (obfd->xvec->flavour == var_32) {
              var_108 = obfd->sections;
              var_109 = (type_23 *)0x0;
              if (var_108 == (type_23 *)0x0) {
LAB_0010ad5e:
                var_72 = 0x1000;
              }
              else {
                do {
                  var_110 = var_109;
                  if (((var_108->vma != 0) && (var_110 = var_108, var_109 != (type_23 *)0x0)) &&
                     (var_110 = var_109, var_109->vma < var_108->vma)) {
                    var_110 = var_108;
                  }
                  var_108 = var_108->next;
                  var_109 = var_110;
                } while (var_108 != (type_23 *)0x0);
                if (var_110 == (type_23 *)0x0) goto LAB_0010ad5e;
                var_65 = var_110->size + var_110->vma;
                var_72 = 0xffffffffffffffff;
                if (var_65 < 0xfffffffffffff001) {
                  var_72 = var_65 + 0xfff & 0xfffffffffffff000;
                }
              }
              *(type_22 *)(var_107 + 0x30) = var_72;
              *(type_22 *)(var_107 + 0x28) = var_72;
              var_107[0x24] = var_107[0x24] | 1;
            }
          }
          else {
            pcVar59 = (type_26 *)obfd->filename;
            var_74 = (char *)var_4(0,"%s: debuglink section already exists",5);
            var_5(var_74);
            var_105 = (char *)0x0;
            var_107 = (char *)0x0;
          }
        }
        var_20 = obfd->section_count;
        if ((var_20 == 0) || (var_111 == 0 && var_112 == 0)) {
          var_119 = 0;
          var_163 = (type_22 *)0x0;
          var_117 = (long *)0x0;
          var_65 = var_119;
        }
        else {
          var_94 = (type_22)var_20 * 8;
          var_117 = (long *)var_52(var_94);
          contents = (type_6 *)var_117;
          var_54(obfd,get_sections,&contents);
          var_113(var_117,(type_22)var_20,8,compare_section_lma);
          var_163 = (type_22 *)var_52(var_94);
          pcVar59 = (type_26 *)0x0;
          var_114(var_163,0,var_94);
          var_65 = 0;
          var_119 = 0;
          if ((var_111 != 0) && (var_20 != 1)) {
            var_115 = var_117;
            var_116 = var_163;
            do {
              pcVar59 = (type_26 *)*var_115;
              if ((((type_19 *)pcVar59)->flags & 0x102) == 0x102) {
                var_72 = ((type_19 *)pcVar59)->lma + ((type_19 *)pcVar59)->size;
                if (var_72 < *(type_22 *)(var_115[1] + 0x30)) {
                  var_72 = *(type_22 *)(var_115[1] + 0x30) - var_72;
                  var_7 = var_61(obfd,pcVar59,((type_19 *)pcVar59)->size + var_72);
                  if (var_7 == 0) {
                    var_74 = (char *)var_4(0,"Can\'t fill gap after section",5);
                    pcVar59 = (type_26 *)obfd;
                    var_8((char *)0x0,obfd,(type_19 *)*var_115,var_74);
                    status = 1;
                    var_119 = var_65;
                    break;
                  }
                  *var_116 = var_72;
                  if (var_65 < var_72) {
                    var_65 = var_72;
                  }
                }
              }
              var_115 = var_115 + 1;
              var_116 = var_116 + 1;
              var_119 = var_65;
            } while (var_117 + (type_22)(var_20 - 2) + 1 != var_115);
          }
          var_65 = var_119;
          if (var_112 != 0) {
            pcVar59 = (type_26 *)var_117[var_20 - 1];
            var_72 = ((type_19 *)pcVar59)->size + ((type_19 *)pcVar59)->lma;
            if (var_72 < var_118) {
              var_7 = var_61(obfd,pcVar59,var_118 - ((type_19 *)pcVar59)->lma);
              if (var_7 == 0) {
                var_74 = (char *)var_4(0,"can\'t add padding",5);
                pcVar59 = (type_26 *)obfd;
                var_8((char *)0x0,obfd,(type_19 *)var_117[var_20 - 1],var_74);
                status = 1;
              }
              else {
                var_65 = var_118 - var_72;
                var_163[var_20 - 1] = var_65;
                if (var_65 <= var_119) {
                  var_65 = var_119;
                }
              }
            }
          }
        }
        var_119 = var_65;
        var_153 = (void *)0x0;
        if (var_120 != 0) {
          pcVar59 = (type_26 *)var_48;
          var_153 = var_121(ibfd,var_48,var_53,0);
        }
        if (var_18 - var_122 < 6) {
LAB_00109b5a:
          if (var_18 != var_19) {
LAB_00109b5f:
            var_96(0);
            pcVar59 = mark_symbols_used_in_relocations;
            var_54(ibfd,mark_symbols_used_in_relocations,var_48);
            var_7 = var_123();
            if (var_7 != 0) {
              status = 1;
              return 0;
            }
          }
          var_50 = (type_5 **)var_52();
          local_b8._0_4_ = *(type_4 *)&ibfd->field_0x44 >> 5 & 0x42;
          var_51 = var_50;
          if (var_53 != 0) {
            var_151 = var_48 + var_53;
            var_81 = var_48;
            var_53 = 0;
            do {
              var_7 = var_125;
              var_60 = (type_19 *)*var_81;
              var_108 = var_60->prev;
              var_131 = *(type_19 **)&var_60->id;
              var_27 = *(long *)&var_60->flags;
              if (((var_124 != (type_25 *)0x0) && (0 < var_125)) &&
                 (var_74 = var_124->othersym, var_74 != (char *)0x0)) {
                var_30 = 0;
                paVar53 = var_124;
                while (pcVar59 = (type_26 *)var_131, var_75 = var_126(var_74,(char *)var_131),
                      var_75 != 0) {
                  var_30 = var_30 + 1;
                  paVar53 = paVar53->next;
                  if ((var_30 == var_7) || (var_74 = paVar53->othersym, var_74 == (char *)0x0))
                  goto LAB_00109cb0;
                }
                var_49(var_74);
                paVar53->othersym = "";
                pcVar59 = (type_26 *)obfd;
                paVar29 = var_127(paVar53,obfd);
                var_50[var_53] = paVar29;
                var_53 = var_53 + 1;
              }
LAB_00109cb0:
              var_86 = var_128(redefine_specific_htab);
              var_132 = var_131;
              if ((var_86 != 0) || (var_129 != (type_15 *)0x0)) {
                local_50._0_4_ = 0;
                local_50._4_4_ = 0;
                pcVar59 = (type_26 *)&contents;
                contents = (type_6 *)var_131;
                var_86 = var_130(redefine_specific_htab);
                if (((var_86 == 0) || (var_132 = *(type_19 **)(var_86 + 8), var_131 == var_132)) &&
                   (var_133 = var_129, ((type_22)var_108 & 0x100) != 0)) {
                  for (; var_132 = var_131, var_133 != (type_15 *)0x0;
                      var_133 = var_133->next) {
                    pcVar59 = (type_26 *)var_131;
                    var_7 = var_126(var_133->old_name,(char *)var_131);
                    if (var_7 == 0) {
                      var_132 = (type_19 *)var_133->new_name;
                      break;
                    }
                  }
                }
                *(type_19 **)&var_60->id = var_132;
              }
              var_74 = var_137;
              var_134 = ibfd->xvec->symbol_leading_char;
              if (*(char *)&var_132->name == var_134) {
                if (var_135 == 0) {
                  if ((var_136 == 0) ||
                     (((((type_22)var_108 & 0x82) == 0 && (var_27 != 0x12c678)) &&
                      ((*(type_27 *)(*(long *)&var_60->flags + 0x21) & 0x10) == 0))))
                  goto LAB_00109d39;
LAB_00109f88:
                  var_132 = (type_19 *)((long)&var_132->name + 1);
                  *(type_19 **)&var_60->id = var_132;
                  goto LAB_00109d39;
                }
                var_134 = obfd->xvec->symbol_leading_char;
                if (var_134 == '\0') goto LAB_00109f88;
                if (var_137 != (char *)0x0) {
                  var_132 = (type_19 *)((long)&var_132->name + 1);
                  *(type_19 **)&var_60->id = var_132;
                  goto LAB_00109fa6;
                }
                *(char *)&var_132->name = var_134;
                *(type_19 **)&var_60->id = var_132;
              }
              else {
                if (((var_135 == 0) || (obfd->xvec->symbol_leading_char == '\0')) ||
                   (var_134 != '\0')) {
LAB_00109d39:
                  if (var_74 == (char *)0x0) goto LAB_00109da6;
                  var_94 = var_138(var_74);
                  var_101 = var_138((char *)var_132);
                  var_131 = (type_19 *)var_52(var_94 + 2 + var_101);
                  paVar34 = var_131;
                  pcVar59 = (type_26 *)var_132;
                }
                else {
LAB_00109fa6:
                  var_94 = var_138(var_74);
                  var_101 = var_138((char *)var_132);
                  paVar34 = (type_19 *)var_52(var_94 + 2 + var_101);
                  var_131 = (type_19 *)((long)&paVar34->name + 1);
                  *(char *)&paVar34->name = obfd->xvec->symbol_leading_char;
                  pcVar59 = (type_26 *)var_132;
                }
                var_132 = paVar34;
                var_74 = var_137;
                if (var_137 != (char *)0x0) {
                  var_139((char *)var_131,var_137);
                  var_94 = var_138(var_74);
                  var_131 = (type_19 *)((long)&var_131->name + var_94);
                }
                var_139((char *)var_131,(char *)pcVar59);
                *(type_19 **)&var_60->id = var_132;
              }
LAB_00109da6:
              if (var_18 == var_19) goto LAB_00109e38;
              if (((type_22)var_108 & 0x20) == 0) {
                if ((((type_22)var_108 & 0x100) == 0) ||
                   ((*(type_27 *)(**(long **)(*(long *)&var_60->flags + 0x100) + 0x18) & 0x20) == 0))
                {
                  if ((((type_4)local_b8 == 0) &&
                      ((((type_22)var_108 & 0x82) != 0 ||
                       ((*(type_27 *)(*(long *)&var_60->flags + 0x21) & 0x10) != 0)))) ||
                     (var_7 = var_140(var_60), var_7 == 0x49)) {
LAB_0010a060:
                    pcVar59 = (type_26 *)strip_specific_htab;
                    var_28 = var_141((char *)var_132,strip_specific_htab);
                    if (var_28 == 0) goto LAB_00109e20;
                  }
                  else if (((((type_22)var_108 & 0x82) == 0) && (var_27 != 0x12c678)) &&
                          ((*(type_27 *)(*(long *)&var_60->flags + 0x21) & 0x10) == 0)) {
                    if (((type_22)var_108 & 4) == 0) {
                      if (((ibfd->xvec->flavour != var_32) ||
                          (var_86 = *(long *)(*(long *)&var_60->flags + 0xe0), var_86 == 0)) ||
                         (*(long *)(var_86 + 0x40) == 0)) {
                        if ((var_18 == var_142) || (var_143 == var_144))
                        goto LAB_00109e38;
                        if (var_143 == var_145) {
                          pcVar59 = (type_26 *)var_60;
                          var_7 = var_146(ibfd);
                          goto joined_r0x0010aafb;
                        }
                      }
                      goto LAB_0010a060;
                    }
                    var_7 = var_120;
                    if (1 < var_18 - var_122) {
joined_r0x0010aafb:
                      if (var_7 == 0) goto LAB_0010a060;
                    }
                  }
                  else if (var_18 != var_142) goto LAB_0010a060;
                }
                else {
                  var_28 = var_141((char *)var_132,strip_specific_htab);
                  if (var_28 != 0) {
                    var_74 = (char *)var_4(0,
                                                "not stripping symbol `%s\' because it is named in a relocation"
                                                ,5);
                    var_5(var_74,var_132);
                    status = 1;
                  }
LAB_00109e20:
                  pcVar59 = (type_26 *)strip_unneeded_htab;
                  var_28 = var_141((char *)var_132,strip_unneeded_htab);
                  if (var_28 == 0) goto LAB_00109e61;
                }
LAB_00109e38:
                if (((var_147 != 0) && (((type_22)var_108 & 0x4000) != 0)) ||
                   (pcVar59 = (type_26 *)keep_specific_htab,
                   var_28 = var_141((char *)var_132,keep_specific_htab), var_28 != 0))
                goto LAB_00109e61;
              }
              else {
                pcVar59 = (type_26 *)strip_specific_htab;
                var_28 = var_141((char *)var_132,strip_specific_htab);
                if (var_28 != 0) {
                  var_74 = (char *)var_4(0,
                                              "not stripping symbol `%s\' because it is named in a relocation"
                                              ,5);
                  pcVar59 = (type_26 *)var_132;
                  var_5(var_74);
                  status = 1;
                }
LAB_00109e61:
                var_28 = var_148(*(type_2 **)&var_60->flags,(type_19 *)pcVar59);
                if (var_28 == 0) {
                  if ((((type_22)var_108 & 2) != 0) &&
                     ((var_149 != 0 ||
                      (pcVar59 = (type_26 *)weaken_specific_htab,
                      var_28 = var_141((char *)var_132,weaken_specific_htab),
                      var_28 != 0)))) {
                    *(type_4 *)&var_60->prev = *(type_4 *)&var_60->prev & 0xfffffffd | 0x80;
                  }
                  if (var_27 != 0x12c678) {
                    if ((((type_22)var_108 & 0x82) != 0) &&
                       (((pcVar59 = (type_26 *)localize_specific_htab,
                         var_28 = var_141((char *)var_132,localize_specific_htab),
                         var_28 != 0 ||
                         ((var_27 = var_128(), var_27 != 0 &&
                          (pcVar59 = (type_26 *)keepglobal_specific_htab,
                          var_28 = var_141((char *)var_132,keepglobal_specific_htab),
                          var_28 == 0)))) ||
                        ((var_150 != 0 &&
                         ((((var_74 = var_60->name, var_74 != (char *)0x0 &&
                            (*(int *)(*(long *)(var_74 + 8) + 8) == 5)) &&
                           (*(long *)(var_74 + 0xf8) != 0)) &&
                          ((*(type_27 *)((long)&var_60->compressed_size + 1) & 3) - 1 < 2)))))))) {
                      *(type_4 *)&var_60->prev = *(type_4 *)&var_60->prev & 0xffffff7d | 1;
                    }
                    if ((((type_22)var_108 & 1) != 0) &&
                       (pcVar59 = (type_26 *)globalize_specific_htab,
                       var_28 = var_141((char *)var_132,globalize_specific_htab),
                       var_28 != 0)) {
                      *(type_4 *)&var_60->prev = *(type_4 *)&var_60->prev & 0xfffffffe | 2;
                    }
                  }
                  var_50[var_53] = (type_5 *)var_60;
                  var_53 = var_53 + 1;
                }
              }
              var_81 = var_81 + 1;
            } while (var_151 != var_81);
          }
          if ((var_124 != (type_25 *)0x0) && (0 < var_125)) {
            var_27 = 0;
            paVar53 = var_124;
            do {
              var_74 = paVar53->othersym;
              if (var_74 == (char *)0x0) {
                paVar29 = var_127(paVar53,obfd);
                var_50[var_53] = paVar29;
                var_53 = var_53 + 1;
              }
              else if (*var_74 != '\0') {
                var_95 = (char *)var_4(0,"\'before=%s\' not found",5);
                    /* WARNING: Subroutine does not return */
                var_152(var_95,var_74);
              }
              var_27 = var_27 + 1;
              paVar53 = paVar53->next;
            } while (var_27 < var_125);
          }
          var_28 = var_120;
          var_50[var_53] = (type_5 *)0x0;
          var_53 = var_53 & 0xffffffff;
          if ((var_28 != 0) && (var_153 != (void *)0x0)) {
            var_31 = obfd->xvec->flavour;
            if ((var_31 != var_32) && (var_31 != var_10)) {
              var_74 = obfd->xvec->name;
              var_95 = (char *)var_4(0,"don\'t know how to write debugging information for %s",
                                          5);
              var_8((char *)0x0,obfd,(type_19 *)0x0,var_95,var_74);
              status = 1;
              return 0;
            }
            var_28 = var_154
                               (obfd,var_153,&syms,(type_29 *)file_alignment,&strings,
                                (type_29 *)&contents);
            if (var_28 == 0) {
              status = 1;
              return 0;
            }
            var_27 = var_59(obfd,".stab",0x2108);
            var_86 = var_59(obfd,".stabstr",0x2108);
            if ((((var_27 == 0) || (var_86 == 0)) ||
                (var_7 = var_61(obfd,var_27,file_alignment._0_8_), var_7 == 0)) ||
               (var_7 = var_61(obfd,var_86,contents), var_7 == 0)) {
              var_74 = "can\'t create debugging section";
LAB_0010a991:
              var_74 = (char *)var_4(0,var_74,5);
              var_8((char *)0x0,obfd,(type_19 *)0x0,var_74);
              status = 1;
              return 0;
            }
            *(type_17 *)(var_27 + 0x70) = 2;
            *(type_17 *)(var_86 + 0x70) = 0;
            var_7 = var_155(obfd,var_27,syms,0,file_alignment._0_8_);
            if ((var_7 == 0) ||
               (var_7 = var_155(obfd,var_86,strings,0,contents), var_7 == 0)) {
              var_74 = "can\'t set debugging section contents";
              goto LAB_0010a991;
            }
          }
        }
        else {
          if (var_150 != 0 || var_143 != var_156) goto LAB_00109b5f;
          var_27 = var_128(strip_specific_htab);
          if ((((((var_27 != 0) || (var_27 = var_128(keep_specific_htab), var_27 != 0)) ||
                (var_27 = var_128(localize_specific_htab), var_27 != 0)) ||
               ((var_27 = var_128(globalize_specific_htab), var_27 != 0 ||
                (var_27 = var_128(keepglobal_specific_htab), var_27 != 0)))) ||
              (var_27 = var_128(weaken_specific_htab), var_27 != 0)) ||
             (((var_27 = var_128(redefine_specific_htab), var_27 != 0 ||
               (var_137 != (char *)0x0)) ||
              ((var_129 != (type_15 *)0x0 ||
               ((((((var_157 != 0 || var_158 != 0) || var_120 != 0) ||
                  var_135 != 0) || var_136 != 0) || var_149 != 0) ||
                var_125 != 0)))))) goto LAB_00109b5a;
        }
        var_159(obfd,var_51,var_53 & 0xffffffff);
        var_54(ibfd,copy_relocations_in_section,obfd);
        var_54(ibfd,copy_section,obfd);
        for (var_55 = add_sections; var_62 = update_sections, var_55 != (type_14 *)0x0;
            var_55 = var_55->next) {
          var_28 = var_155(obfd,var_55->section,var_55->contents,0,var_55->size)
          ;
          if (var_28 == 0) {
LAB_00109aa8:
            var_8((char *)0x0,obfd,var_55->section,(char *)0x0);
            return var_28;
          }
        }
        for (; var_62 != (type_14 *)0x0; var_62 = var_62->next) {
          var_60 = var_62->section->output_section;
          var_7 = var_155(obfd,var_60,var_62->contents,0,var_62->size);
          if (var_7 == 0) {
            var_8((char *)0x0,obfd,var_60,(char *)0x0);
            return 0;
          }
        }
        if (var_63 != 0) {
          var_60 = (type_19 *)var_58(obfd,".gnu.build.attributes");
          if (((var_60 == (type_19 *)0x0) || (var_63 == 0)) ||
             ((obfd->xvec->flavour != var_10 ||
              (var_28 = var_64
                                  ((type_2 *)var_60,(type_19 *)&var_60->used_by_bfd,
                                   (type_19 *)(type_22)(type_4)var_63), var_28 == 0)))) {
            if (var_160 == 0) {
              var_74 = (char *)var_4(0,"could not find any mergeable note sections",5);
              var_8((char *)0x0,obfd,var_60,var_74);
            }
          }
          else {
            var_7 = var_155(obfd,var_60,merged_notes,0,merged_size);
            if (var_7 == 0) {
              var_74 = (char *)var_4(0,"error: failed to copy merged notes into output",5);
              var_8((char *)0x0,obfd,var_60,var_74);
              return 0;
            }
          }
          var_49(merged_notes);
          merged_notes = (type_6 *)0x0;
          var_63 = 0;
        }
        if ((var_105 != (char *)0x0) &&
           (var_7 = var_161(obfd,var_107),
           var_74 = var_105, var_7 == 0)) {
          var_95 = (char *)var_4(0,"cannot fill debug link section `%s\'",5);
          var_8((char *)0x0,obfd,(type_19 *)0x0,var_95,var_74);
          return 0;
        }
        if (var_111 != 0 || var_112 != 0) {
          var_65 = 0x2000;
          if (var_119 < 0x2001) {
            var_65 = var_119;
          }
          var_115 = (long *)var_52(var_65);
          var_27 = (type_22)gap_fill * 0x101010101010101;
          var_20 = (type_4)var_65;
          if (var_20 < 8) {
            if ((var_65 & 4) == 0) {
              if ((var_20 != 0) && (*(char *)var_115 = (char)var_27, (var_65 & 2) != 0)) {
                *(short *)((long)var_115 + ((var_65 & 0xffffffff) - 2)) = (short)var_27;
              }
            }
            else {
              *(int *)var_115 = (int)var_27;
              *(int *)((long)var_115 + ((var_65 & 0xffffffff) - 4)) = (int)var_27;
            }
          }
          else {
            *var_115 = var_27;
            *(long *)((long)var_115 + ((var_65 & 0xffffffff) - 8)) = var_27;
            var_162 = (long *)((type_22)(var_115 + 1) & 0xfffffffffffffff8);
            for (var_65 = (type_22)(((int)var_115 -
                                  (int)(long *)((type_22)(var_115 + 1) & 0xfffffffffffffff8)) + var_20
                                 >> 3); var_65 != 0; var_65 = var_65 - 1) {
              *var_162 = var_27;
              var_162 = var_162 + (type_22)bVar71 * -2 + 1;
            }
          }
          if (obfd->section_count != 0) {
            var_116 = var_163 + (type_22)(obfd->section_count - 1) + 1;
            do {
              var_65 = *var_163;
              if (var_65 != 0) {
                var_27 = *var_117;
                var_86 = *(long *)(var_27 + 0x38) - var_65;
                while( true ) {
                  var_72 = 0x2000;
                  if (var_65 < 0x2001) {
                    var_72 = var_65;
                  }
                  var_7 = var_155(obfd,var_27,var_115,var_86,var_72);
                  if (var_7 == 0) {
                    var_8((char *)0x0,obfd,(type_19 *)*var_117,(char *)0x0);
                    return 0;
                  }
                  var_86 = var_86 + var_72;
                  var_65 = var_65 - var_72;
                  if (var_65 == 0) break;
                  var_27 = *var_117;
                }
              }
              var_163 = var_163 + 1;
              var_117 = var_117 + 1;
            } while (var_116 != var_163);
          }
        }
        var_28 = (*obfd->xvec->_bfd_copy_private_bfd_data)(ibfd,obfd);
        if (var_28 != 0) {
          if ((var_164 != 0) &&
             (var_7 = var_165(obfd), var_65 = var_164, var_7 == 0)) {
            var_74 = (char *)var_4(0,
                                        "this target does not support %lu alternative machine codes"
                                        ,5);
            var_5(var_74,var_65);
            if (obfd->xvec->flavour != var_10) {
              var_74 = (char *)var_4(0,"ignoring the alternative value",5);
              var_5(var_74);
              return 1;
            }
            var_74 = (char *)var_4(0,
                                        "treating that number as an absolute e_machine value instead"
                                        ,5);
            var_5(var_74);
            *(short *)((long)&((obfd->tdata).coff_obj_data)->local_n_btmask + 2) =
                 (short)var_164;
          }
          return 1;
        }
        var_74 = (char *)var_4(0,"error copying private BFD data",5);
        var_7 = 0;
        goto LAB_00109580;
      }
      if ((var_166 == var_167) || ((var_166 & var_167) == var_168)) {
        if (var_169 == var_170) goto LAB_00109056;
        var_74 = var_9(ibfd);
        var_95 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      }
      else {
        var_74 = var_9(ibfd);
        var_95 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
      }
    }
LAB_0010952f:
    var_95 = (char *)var_4(0,var_95,5);
    var_7 = 0;
    var_5(var_95,var_74);
  }
  return var_7;
LAB_0010b3bc:
  if ((type_24 *)((long)var_77 + var_15) <= var_171) goto LAB_0010b3c1;
  *var_171 = (char)var_72;
  if (var_72 == 0) goto LAB_0010b3c1;
  var_72 = var_72 >> 8;
  var_171 = var_171 + 1;
  goto LAB_0010b3bc;
LAB_0010b3c1:
  var_79[0xb] = 0;
  var_35 = true;
  goto LAB_0010b255;
}


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

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int MASKED(long param_1,undefined8 *param_2,long param_3)

{
  void *__dest;
  undefined8 uVar1;
  long *plVar2;
  size_t sVar3;
  code *pcVar4;
  size_t sVar5;
  size_t *psVar6;
  void *__dest_00;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  int iVar10;
  int iVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  FILE *__s;
  undefined8 uVar14;
  long *plVar15;
  long lVar16;
  size_t sVar17;
  size_t sVar18;
  long *plVar19;
  long *plVar20;
  ulong uVar21;
  int *piVar22;
  void *pvVar23;
  long lVar24;
  size_t sVar25;
  void *pvVar26;
  ulong uVar27;
  uint uVar28;
  ulong uVar29;
  undefined1 *puVar30;
  size_t *psVar31;
  ulong *puVar32;
  undefined8 *puVar33;
  long *plVar34;
  size_t *psVar35;
  size_t *psVar36;
  size_t *psVar37;
  long lVar38;
  char *pcVar39;
  byte *pbVar40;
  ulong uVar41;
  char cVar42;
  byte *pbVar43;
  undefined8 *puVar44;
  ulong uVar45;
  long *__src;
  long *plVar46;
  size_t *psVar47;
  void *pvVar48;
  bool bVar49;
  bool bVar50;
  byte bVar51;
  size_t *local_110;
  ulong local_100;
  void *local_f0;
  ulong local_e8;
  size_t local_c8;
  size_t local_c0;
  size_t local_b8;
  size_t local_b0;
  long local_a8;
  ulong local_a0;
  long *local_98;
  ulong *local_90;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78 [4];
  long *local_58;
  undefined8 local_50;
  
  bVar51 = 0;
  iVar7 = *(int *)(*(long *)(param_1 + 8) + 0xc);
  if ((iVar7 != *(int *)(param_2[1] + 0xc) && iVar7 != 2) && (*(int *)(param_2[1] + 0xc) != 2)) {
    uVar12 = dcgettext(0,"Unable to change endianness of input file(s)",5);
    FUN_0011b660(uVar12);
    return 0;
  }
  iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);
  uVar12 = 0;
  if (iVar7 == 0) {
LAB_00109580:
    FUN_0011c0d0(0,param_2,0,uVar12);
  }
  else {
    if (*(long *)(param_1 + 0x90) == 0) {
      uVar12 = FUN_0011bfe0(param_1);
      pcVar39 = "error: the input file \'%s\' has no sections";
    }
    else {
      if (*(int *)(*(undefined8 **)(param_1 + 8) + 1) == 5) {
LAB_00109056:
        if (DAT_0012cb2c != 0) {
          uVar12 = *param_2;
          uVar13 = **(undefined8 **)(param_1 + 8);
          uVar1 = *(undefined8 *)param_2[1];
          uVar14 = FUN_0011bfe0(param_1);
          pcVar39 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
          printf(pcVar39,uVar14,uVar13,uVar12,uVar1);
        }
        lVar38 = 0;
        if (DAT_0012c9f4 == 0) {
          lVar38 = DAT_0012cae0;
          if (DAT_0012cae8 == 0) {
            lVar38 = *(long *)(param_1 + 0xa8);
          }
          lVar38 = lVar38 + _DAT_0012caf0;
        }
        if ((*(byte *)((long)param_2 + 0x44) & 7) != 3) {
          uVar28 = ~DAT_0012cab0 & *(uint *)(param_2[1] + 0x14) &
                   (DAT_0012cab4 | *(uint *)(param_1 + 0x44) >> 5 & 0xfffff);
          if (DAT_0012cb0c == 7) {
            uVar28 = uVar28 & 0xfffffffe;
          }
          iVar7 = bfd_set_start_address(param_2,lVar38);
          if ((iVar7 == 0) || (iVar7 = bfd_set_file_flags(param_2,uVar28), iVar7 == 0))
          goto LAB_001091b0;
        }
        uVar8 = bfd_get_arch(param_1);
        uVar9 = bfd_get_mach(param_1);
        if (param_3 != 0) {
          lVar38 = bfd_get_arch_info(param_1);
          if ((lVar38 == 0) || (lVar38 = bfd_get_arch_info(param_1), *(int *)(lVar38 + 0xc) == 0)) {
            uVar8 = *(undefined4 *)(param_3 + 0xc);
            uVar9 = *(undefined4 *)(param_3 + 0x10);
          }
          else {
            uVar12 = FUN_0011bfe0(param_1);
            uVar13 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);
            FUN_0011b660(uVar13,uVar12);
          }
        }
        iVar7 = (**(code **)(param_2[1] + 0x290))(param_2,uVar8,uVar9);
        if (iVar7 == 0) {
          if ((*(byte *)(param_1 + 0x47) & 4) != 0) {
LAB_0010916a:
            iVar7 = bfd_get_arch(param_1);
            if (iVar7 == 0) {
              uVar12 = FUN_0011bfe0(param_1);
              pcVar39 = "Unable to recognise the format of the input file `%s\'";
            }
            else {
              uVar12 = bfd_get_mach(param_1);
              uVar8 = bfd_get_arch(param_1);
              uVar12 = bfd_printable_arch_mach(uVar8,uVar12);
              pcVar39 = "Output file cannot represent architecture `%s\'";
            }
            uVar13 = dcgettext(0,pcVar39,5);
            FUN_0011b660(uVar13,uVar12);
            return 0;
          }
          iVar7 = bfd_get_arch(param_1);
          iVar10 = bfd_get_arch(param_2);
          if (iVar7 != iVar10) goto LAB_0010916a;
        }
        iVar7 = bfd_set_format(param_2,*(byte *)(param_1 + 0x44) & 7);
        if (iVar7 == 0) {
LAB_001091b0:
          FUN_0011c0d0(0,param_1,0,0);
          return 0;
        }
        uVar28 = *(uint *)((undefined8 *)param_2[1] + 1);
        bVar49 = uVar28 < 2;
        bVar50 = uVar28 == 2;
        if (bVar50) {
          lVar38 = 4;
          pbVar40 = *(byte **)param_2[1];
          pbVar43 = &DAT_0011e166;
          do {
            if (lVar38 == 0) break;
            lVar38 = lVar38 + -1;
            bVar49 = *pbVar40 < *pbVar43;
            bVar50 = *pbVar40 == *pbVar43;
            pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;
            pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;
          } while (bVar50);
          if ((!bVar49 && !bVar50) == bVar49) {
            lVar38 = param_2[0x1f];
            uVar28 = *(uint *)(*(undefined8 **)(param_1 + 8) + 1);
            bVar49 = uVar28 < 2;
            bVar50 = uVar28 == 2;
            if (bVar50) {
              lVar16 = 4;
              pbVar40 = (byte *)**(undefined8 **)(param_1 + 8);
              pbVar43 = &DAT_0011e166;
              do {
                if (lVar16 == 0) break;
                lVar16 = lVar16 + -1;
                bVar49 = *pbVar40 < *pbVar43;
                bVar50 = *pbVar40 == *pbVar43;
                pbVar40 = pbVar40 + (ulong)bVar51 * -2 + 1;
                pbVar43 = pbVar43 + (ulong)bVar51 * -2 + 1;
              } while (bVar50);
              if ((!bVar49 && !bVar50) == bVar49) {
                puVar33 = (undefined8 *)(*(long *)(param_1 + 0xf8) + 200);
                puVar44 = (undefined8 *)(lVar38 + 200);
                for (lVar16 = 0x37; lVar16 != 0; lVar16 = lVar16 + -1) {
                  *puVar44 = *puVar33;
                  puVar33 = puVar33 + (ulong)bVar51 * -2 + 1;
                  puVar44 = puVar44 + (ulong)bVar51 * -2 + 1;
                }
              }
            }
            uVar21 = DAT_0012b4f8;
            if (DAT_0012b4f8 == 0xffffffffffffffff) {
              DAT_0012b4f8 = 0x200;
              uVar21 = 0x200;
            }
            else {
              *(ulong *)(lVar38 + 0x110) = DAT_0012b4f8;
            }
            if (DAT_0012b4f0 != -1) {
              *(long *)(lVar38 + 0x168) = DAT_0012b4f0;
            }
            if (DAT_0012b4e8 != -1) {
              *(long *)(lVar38 + 0x168) = DAT_0012b4e8;
            }
            if (DAT_0012b4e0 != -1) {
              *(long *)(lVar38 + 0x100) = DAT_0012b4e0;
            }
            uVar29 = DAT_0012b4d8;
            if (DAT_0012b4d8 == 0xffffffffffffffff) {
              DAT_0012b4d8 = 0x1000;
              uVar29 = 0x1000;
            }
            else {
              *(ulong *)(lVar38 + 0x108) = DAT_0012b4d8;
            }
            if (DAT_0012b4d0 != -1) {
              *(long *)(lVar38 + 0x158) = DAT_0012b4d0;
            }
            if (DAT_0012b4c8 != -1) {
              *(long *)(lVar38 + 0x158) = DAT_0012b4c8;
            }
            if (DAT_0012b4c4 != -1) {
              *(short *)(lVar38 + 0x148) = DAT_0012b4c4;
            }
            if (DAT_0012b4c2 != -1) {
              *(short *)(lVar38 + 0x120) = DAT_0012b4c2;
            }
            if (DAT_0012b4c0 != -1) {
              *(short *)(lVar38 + 0x122) = DAT_0012b4c0;
            }
            if (uVar29 < uVar21) {
              sprintf((char *)local_78,"%016lx");
              sprintf((char *)&local_58,"%016lx",DAT_0012b4d8);
              uVar12 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);
              FUN_0011b660(uVar12,local_78,&local_58);
            }
          }
        }
        plVar15 = DAT_0012cb40;
        if (DAT_0012cb40 != (long *)0x0) {
          free(DAT_0012cb40);
        }
        if (plVar15 != DAT_0012cb38) {
          free(DAT_0012cb38);
        }
        DAT_0012cb40 = (long *)0x0;
        DAT_0012cb38 = (long *)0x0;
        lVar38 = (**(code **)(*(long *)(param_1 + 8) + 0x1f0))(param_1);
        if (lVar38 < 0) goto LAB_001091b0;
        DAT_0012cb38 = (long *)xmalloc(lVar38);
        DAT_0012cb40 = DAT_0012cb38;
        local_100 = (**(code **)(*(long *)(param_1 + 8) + 0x1f8))(param_1,DAT_0012cb38);
        if ((long)local_100 < 0) goto LAB_001091b0;
        if (local_100 == 0) {
          free(DAT_0012cb40);
          DAT_0012cb40 = (long *)0x0;
          DAT_0012cb38 = (long *)0x0;
        }
        bfd_map_over_sections(param_1,FUN_001083b0,param_2);
        puVar33 = DAT_0012caa8;
        if ((DAT_0012c9f4 == 0) &&
           (iVar7 = (**(code **)(param_2[1] + 0x160))(param_1,param_2), puVar33 = DAT_0012caa8,
           iVar7 == 0)) {
          DAT_0012cb24 = 1;
          uVar12 = dcgettext(0,"error in private header data",5);
          FUN_0011c0d0(0,param_1,0,uVar12);
          puVar33 = DAT_0012caa8;
        }
        for (; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;
            puVar33 = (undefined8 *)*puVar33) {
          uVar28 = 0x128;
          lVar38 = FUN_00107360(puVar33[1],0,0x40);
          if (lVar38 != 0) {
            uVar28 = *(uint *)(lVar38 + 0x28) | 0x100;
          }
          lVar38 = bfd_get_section_by_name(param_2,puVar33[1]);
          if (lVar38 != 0) {
            lVar38 = puVar33[1];
            pcVar39 = "can\'t add section \'%s\'";
            goto LAB_00109ad0;
          }
          lVar38 = bfd_make_section_with_flags(param_2,puVar33[1],uVar28 | 0x100000);
          puVar33[5] = lVar38;
          if (lVar38 == 0) {
            lVar38 = puVar33[1];
            pcVar39 = "can\'t create section `%s\'";
            goto LAB_00109ad0;
          }
          iVar7 = bfd_set_section_size(param_2,lVar38,puVar33[3]);
          if (iVar7 == 0) goto LAB_00109aa8;
          lVar38 = FUN_00107360(puVar33[1],0,0xc);
          if (lVar38 != 0) {
            uVar12 = *(undefined8 *)(lVar38 + 0x18);
            lVar38 = puVar33[5];
            *(byte *)(lVar38 + 0x24) = *(byte *)(lVar38 + 0x24) | 1;
            *(undefined8 *)(lVar38 + 0x30) = uVar12;
            *(undefined8 *)(lVar38 + 0x28) = uVar12;
          }
          lVar38 = FUN_00107360(puVar33[1],0,0x30);
          if (lVar38 != 0) {
            *(undefined8 *)(puVar33[5] + 0x30) = *(undefined8 *)(lVar38 + 0x20);
          }
        }
        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {
          lVar38 = bfd_get_section_by_name(param_1,puVar44[1]);
          puVar44[5] = lVar38;
          if (lVar38 == 0) {
            uVar12 = puVar44[1];
            pcVar39 = "error: %s not found, can\'t be updated";
            goto LAB_0010952f;
          }
          uVar12 = *(undefined8 *)(lVar38 + 0x68);
          iVar7 = bfd_set_section_size(param_2,uVar12,puVar44[3]);
          if (iVar7 == 0) {
            FUN_0011c0d0(0,param_2,uVar12,0);
            return 0;
          }
        }
        if ((((DAT_0012cb20 != 0) &&
             (lVar38 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), lVar38 != 0)) &&
            (DAT_0012cb20 != 0)) &&
           ((*(int *)(*(long *)(param_1 + 8) + 8) == 5 &&
            (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 != 0)))) {
          uVar21 = *(ulong *)(lVar38 + 0x38);
          if (uVar21 == 0) {
            uVar12 = dcgettext(0,"warning: note section is empty",5);
            FUN_0011c0d0(0,param_1,lVar38,uVar12);
            DAT_0012cb20 = 0;
          }
          else {
            iVar7 = bfd_get_full_section_contents(param_1,lVar38,&DAT_0012cb18);
            __dest_00 = DAT_0012cb18;
            if (iVar7 == 0) {
              uVar12 = dcgettext(0,"warning: could not load note section",5);
              FUN_0011c0d0(0,param_1,lVar38,uVar12);
              free(DAT_0012cb18);
              DAT_0012cb18 = (void *)0x0;
              DAT_0012cb20 = 0;
            }
            else {
              lVar16 = bfd_get_reloc_upper_bound(param_1,lVar38);
              if (0 < lVar16) {
                pvVar23 = (void *)xmalloc(lVar16);
                lVar16 = bfd_canonicalize_reloc(param_1,lVar38,pvVar23,DAT_0012cb40);
                free(pvVar23);
                if (lVar16 == 0) goto LAB_0010ae6f;
                local_110 = (size_t *)0x0;
                goto LAB_0010b098;
              }
LAB_0010ae6f:
              local_110 = (size_t *)xcalloc(uVar21 / 0xc,0x48,uVar21 % 0xc);
              iVar7 = 0;
              local_c0 = 0;
              local_b0 = 0;
              local_c8 = 0;
              local_b8 = 0;
              iVar10 = 0;
              iVar11 = 0;
              psVar35 = local_110;
              pvVar23 = __dest_00;
              local_e8 = uVar21;
              while (0xb < local_e8) {
                lVar24 = (**(code **)(*(long *)(param_1 + 8) + 0x38))(pvVar23);
                lVar16 = *(long *)(param_1 + 8);
                uVar41 = lVar24 + 3U & 0xfffffffffffffffc;
                *psVar35 = uVar41;
                lVar24 = (**(code **)(lVar16 + 0x38))((long)pvVar23 + 4);
                lVar16 = *(long *)(param_1 + 8);
                uVar29 = lVar24 + 3U & 0xfffffffffffffffc;
                psVar35[1] = uVar29;
                sVar17 = (**(code **)(lVar16 + 0x38))();
                psVar35[2] = sVar17;
                if (1 < sVar17 - 0x100) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5);
                  goto LAB_0010b063;
                }
                uVar45 = uVar41 + uVar29 + 0xc;
                if (local_e8 < uVar45) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: note too big",5);
                  goto LAB_0010b063;
                }
                if (uVar41 < 2) {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name too small",5);
                  goto LAB_0010b063;
                }
                sVar18 = (long)pvVar23 + uVar41 + 0xc;
                psVar35[3] = (long)pvVar23 + 0xc;
                psVar35[4] = sVar18;
                local_e8 = local_e8 + (-0xc - (uVar41 + uVar29));
                if (*(char *)((long)pvVar23 + 0xc) == '$') {
                  if ((*(char *)((long)pvVar23 + 0xd) == '\x01') &&
                     (*(char *)((long)pvVar23 + 0xe) == '1')) {
                    iVar7 = iVar7 + 1;
                  }
                }
                else if ((((4 < uVar41) && (*(char *)((long)pvVar23 + 0xc) == 'G')) &&
                         (*(char *)((long)pvVar23 + 0xd) == 'A')) &&
                        ((*(char *)((long)pvVar23 + 0xe) == '$' &&
                         (*(char *)((long)pvVar23 + 0xf) == '\x01')))) {
                  if (*(char *)((long)pvVar23 + 0x10) == '2') {
                    iVar11 = iVar11 + 1;
                  }
                  else {
                    if (*(char *)((long)pvVar23 + 0x10) != '3') {
                      lVar16 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5
                                        );
                      goto LAB_0010b063;
                    }
                    iVar10 = iVar10 + 1;
                  }
                }
                if (uVar29 == 4) {
                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();
                  sVar25 = 0xffffffffffffffff;
                }
                else if (uVar29 < 5) {
                  if (uVar29 != 0) {
LAB_0010b046:
                    lVar16 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5)
                    ;
                    goto LAB_0010b063;
                  }
                  sVar25 = 0;
                  sVar18 = 0;
                }
                else if (uVar29 == 8) {
                  lVar16 = *(long *)(param_1 + 8);
                  if ((*(int *)(lVar16 + 8) == 5) &&
                     (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {
                    sVar18 = (**(code **)(lVar16 + 0x20))();
                    sVar25 = 0xffffffffffffffff;
                  }
                  else {
                    sVar18 = (**(code **)(lVar16 + 0x38))();
                    sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x38))();
                  }
                }
                else {
                  if (uVar29 != 0x10) goto LAB_0010b046;
                  sVar18 = (**(code **)(*(long *)(param_1 + 8) + 0x20))(sVar18);
                  sVar25 = (**(code **)(*(long *)(param_1 + 8) + 0x20))();
                }
                if (sVar17 == 0x100) {
                  if (sVar18 == 0) {
                    sVar18 = local_c8;
                  }
                  if (sVar25 == 0) {
                    sVar25 = local_c0;
                  }
                  psVar35[6] = sVar18;
                  psVar35[7] = sVar25;
                  local_c8 = sVar18;
                  local_c0 = sVar25;
                }
                else {
                  if (sVar18 == 0) {
                    sVar18 = local_b8;
                  }
                  if (sVar25 == 0) {
                    sVar25 = local_b0;
                  }
                  psVar35[6] = sVar18;
                  psVar35[7] = sVar25;
                  local_b8 = sVar18;
                  local_b0 = sVar25;
                }
                if (*(char *)((psVar35[3] - 1) + *psVar35) != '\0') {
                  lVar16 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5
                                    );
                  goto LAB_0010b063;
                }
                psVar35 = psVar35 + 9;
                pvVar23 = (void *)(uVar45 + (long)pvVar23);
              }
              if (local_e8 == 0) {
                if (iVar7 == 0 && (iVar11 == 0 && iVar10 == 0)) {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5
                                    );
                  goto LAB_0010b063;
                }
                if (((iVar7 != 0) && (iVar11 != 0 || iVar10 != 0)) ||
                   ((iVar11 != 0 && (iVar10 != 0)))) {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",
                                     5);
                  goto LAB_0010b063;
                }
                if ((iVar7 == 1 || iVar11 == 1) || (iVar10 == 1)) goto LAB_0010b098;
                uVar28 = -(uint)(iVar7 == 0) & 2;
                lVar16 = (long)(int)(uVar28 + 1);
                if (*(char *)(local_110[3] + lVar16) != '\x01') {
                  lVar16 = dcgettext(0,"bad GNU build attribute notes: first note not version note",
                                     5);
                  goto LAB_0010b063;
                }
                iVar7 = uVar28 + 2;
                bVar49 = false;
                lVar24 = (long)iVar7;
                psVar47 = local_110;
LAB_0010b255:
                psVar6 = psVar47;
                psVar47 = psVar6 + 9;
                if (psVar47 < psVar35) {
                  if (psVar6[0xb] == 0x100) {
                    pvVar23 = (void *)psVar6[0xc];
                    psVar36 = (size_t *)0x0;
                    for (psVar31 = psVar6; local_110 <= psVar31; psVar31 = psVar31 + -9) {
                      pvVar26 = (void *)psVar31[3];
                      psVar37 = psVar36;
                      if ((((psVar36 != (size_t *)0x0) || (psVar31[1] == 0)) ||
                          (psVar37 = psVar31, psVar31[2] != 0x101)) &&
                         ((psVar36 = psVar37,
                          *(char *)((long)pvVar23 + lVar16) == *(char *)((long)pvVar26 + lVar16) &&
                          (psVar31[2] == 0x100)))) {
                        if (*(char *)((long)pvVar26 + lVar16) != '\x04') {
                          if ((((*psVar31 == *psVar47) &&
                               (iVar11 = memcmp(pvVar26,pvVar23,*psVar31), iVar11 == 0)) &&
                              ((uVar29 = psVar31[7], uVar29 != 0 &&
                               (uVar41 = psVar6[0x10], uVar41 != 0)))) &&
                             ((0xfffffffffffffff0 < uVar29 ||
                              (psVar6[0xf] <= (uVar29 + 0xf & 0xfffffffffffffff0))))) {
                            psVar6[0xb] = 0;
                            if (uVar29 < uVar41) {
                              psVar31[7] = uVar41;
                            }
                            bVar49 = true;
                            if (iVar10 != 0) {
                              *(undefined4 *)(psVar31 + 8) = 1;
                            }
                          }
                          else if (iVar10 == 0) {
                            if (((psVar6[10] == 0) && (psVar37 != (size_t *)0x0)) &&
                               (psVar37[2] == 0)) {
                              psVar37[2] = 0x100;
                            }
                          }
                          else {
                            *(undefined4 *)(psVar6 + 0x11) = 1;
                            psVar6[0xb] = 0x101;
                            *(undefined4 *)(psVar31 + 8) = 1;
                            psVar31[2] = 0x101;
                          }
                          break;
                        }
                        uVar29 = 0;
                        for (uVar41 = 0; (uint)((int)*psVar47 - iVar7) != uVar41;
                            uVar41 = uVar41 + 1) {
                          uVar29 = uVar29 | (ulong)*(byte *)((long)pvVar23 + uVar41 + lVar24) <<
                                            ((char)uVar41 * '\b' & 0x3fU);
                        }
                        sVar17 = *psVar31;
                        uVar45 = 0;
                        for (uVar41 = 0; (uint)((int)sVar17 - iVar7) != uVar41; uVar41 = uVar41 + 1)
                        {
                          uVar45 = uVar45 | (ulong)(byte)((undefined1 *)((long)pvVar26 + lVar24))
                                                         [uVar41] << ((char)uVar41 * '\b' & 0x3fU);
                        }
                        uVar27 = 0;
                        uVar29 = uVar29 + uVar45;
                        for (uVar41 = uVar29; uVar41 != 0; uVar41 = uVar41 >> 8) {
                          uVar27 = (ulong)((int)uVar27 + 1);
                        }
                        if (uVar27 < sVar17 - lVar24) {
                          puVar30 = (undefined1 *)((long)pvVar26 + lVar24);
                          goto LAB_0010b3bc;
                        }
                      }
                    }
                  }
                  goto LAB_0010b255;
                }
                if (!bVar49) goto LAB_0010b098;
                pvVar26 = (void *)xmalloc(uVar21);
                sVar17 = 0;
                local_f0 = __dest_00;
                pvVar23 = pvVar26;
                for (psVar47 = local_110; psVar47 < psVar35; psVar47 = psVar47 + 9) {
                  sVar25 = *psVar47;
                  sVar5 = psVar47[2];
                  sVar18 = psVar47[1] + sVar25 + 0xc;
                  pvVar48 = pvVar23;
                  if (sVar5 != 0) {
                    if ((int)psVar47[8] == 0) {
                      memcpy(pvVar23,local_f0,sVar18);
                      pvVar48 = (void *)((long)pvVar23 + sVar18);
                    }
                    else {
                      sVar3 = psVar47[6];
                      __dest = (void *)((long)pvVar23 + 0xc);
                      pcVar4 = *(code **)(*(long *)(param_1 + 8) + 0x48);
                      pvVar48 = (void *)((long)__dest + sVar25);
                      if ((sVar3 == local_e8) && (psVar47[7] == sVar17)) {
                        (*pcVar4)(sVar25,pvVar23);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(0,(long)pvVar23 + 4);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);
                        memcpy(__dest,(void *)psVar47[3],sVar25);
                      }
                      else {
                        (*pcVar4)();
                        cVar42 = '\b';
                        if (*(int *)(*(long *)(param_1 + 8) + 8) == 5) {
                          cVar42 = (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02') * '\b' +
                                   '\b';
                        }
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(cVar42,(long)pvVar23 + 4);
                        (**(code **)(*(long *)(param_1 + 8) + 0x48))(sVar5,(long)pvVar23 + 8);
                        memcpy(__dest,(void *)psVar47[3],sVar25);
                        lVar16 = *(long *)(param_1 + 8);
                        if ((*(int *)(lVar16 + 8) == 5) &&
                           (*(char *)(*(long *)(param_1 + 0xf8) + 4) == '\x02')) {
                          (**(code **)(lVar16 + 0x30))();
                          (**(code **)(*(long *)(param_1 + 8) + 0x30))
                                    (psVar47[7],(void *)((long)pvVar48 + 8));
                          pvVar48 = (void *)((long)pvVar48 + 0x10);
                        }
                        else {
                          (**(code **)(lVar16 + 0x48))(sVar3,pvVar48);
                          (**(code **)(*(long *)(param_1 + 8) + 0x48))(psVar47[7],(long)pvVar48 + 4)
                          ;
                          pvVar48 = (void *)((long)pvVar48 + 8);
                        }
                      }
                    }
                    local_e8 = psVar47[6];
                    sVar17 = psVar47[7];
                  }
                  local_f0 = (void *)((long)local_f0 + sVar18);
                  pvVar23 = pvVar48;
                }
                sVar17 = (long)pvVar23 - (long)pvVar26;
                memcpy(__dest_00,pvVar26,sVar17);
                free(pvVar26);
                free(local_110);
                DAT_0012cb10 = sVar17;
                if (uVar21 != sVar17) {
                  if ((*(long *)(lVar38 + 0x68) != 0) &&
                     (iVar7 = bfd_set_section_size(param_2,*(long *)(lVar38 + 0x68),sVar17),
                     iVar7 != 0)) goto LAB_0010941b;
                  uVar12 = dcgettext(0,"warning: failed to set merged notes size",5);
                  FUN_0011c0d0(0,param_2,lVar38,uVar12);
                }
              }
              else {
                lVar16 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5);
LAB_0010b063:
                if (lVar16 != 0) {
                  bfd_set_error(0x11);
                  FUN_0011c0d0(0,param_1,lVar38,lVar16);
                  DAT_0012cb24 = 1;
                }
LAB_0010b098:
                free(local_110);
              }
              free(DAT_0012cb18);
              DAT_0012cb18 = (void *)0x0;
              DAT_0012cb20 = 0;
              DAT_0012cb10 = 0;
            }
          }
        }
LAB_0010941b:
        for (puVar33 = DAT_0012ca98; puVar33 != (undefined8 *)0x0; puVar33 = (undefined8 *)*puVar33)
        {
          lVar38 = bfd_get_section_by_name(param_1,puVar33[1]);
          if (lVar38 == 0) {
            uVar12 = puVar33[1];
            uVar13 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
            FUN_0011c0d0(0,param_1,0,uVar13,uVar12);
          }
          else {
            pcVar39 = "can\'t dump section - it has no contents";
            if ((*(byte *)(lVar38 + 0x21) & 1) != 0) {
              sVar17 = *(size_t *)(lVar38 + 0x38);
              if (sVar17 != 0) {
                __s = fopen((char *)puVar33[2],"w");
                if (__s == (FILE *)0x0) {
                  uVar12 = dcgettext(0,"could not open section dump file",5);
                  FUN_0011c0d0(puVar33[2],0,0,uVar12);
                }
                else {
                  iVar7 = bfd_malloc_and_get_section(param_1,lVar38,&local_58);
                  if (iVar7 == 0) {
                    uVar12 = dcgettext(0,"could not retrieve section contents",5);
                    FUN_0011c0d0(0,param_1,lVar38,uVar12);
                  }
                  else {
                    sVar18 = fwrite(local_58,1,sVar17,__s);
                    if (sVar17 != sVar18) {
                      piVar22 = __errno_location();
                      pcVar39 = strerror(*piVar22);
                      uVar12 = puVar33[2];
                      uVar13 = dcgettext(0,"error writing section contents to %s (error: %s)",5);
                      FUN_0011b660(uVar13,uVar12,pcVar39);
                      free(local_58);
                      return 0;
                    }
                  }
                  fclose(__s);
                  free(local_58);
                }
                goto LAB_001094a8;
              }
              pcVar39 = "can\'t dump section - it is empty";
            }
            uVar12 = dcgettext(0,pcVar39,5);
            FUN_0011c0d0(0,param_1,lVar38,uVar12);
          }
LAB_001094a8:
        }
        local_a8 = DAT_0012ca90;
        if (DAT_0012ca90 != 0) {
          lVar38 = bfd_get_section_by_name(param_2,".gnu_debuglink");
          if (lVar38 == 0) {
            local_a8 = bfd_create_gnu_debuglink_section(param_2,DAT_0012ca90);
            if (local_a8 == 0) {
              pcVar39 = "cannot create debug link section `%s\'";
              lVar38 = DAT_0012ca90;
LAB_00109ad0:
              uVar12 = dcgettext(0,pcVar39,5);
              FUN_0011c0d0(0,param_2,0,uVar12,lVar38);
              return 0;
            }
            if (*(int *)(param_2[1] + 8) == 2) {
              lVar38 = param_2[0x12];
              lVar16 = 0;
              if (lVar38 == 0) {
LAB_0010ad5e:
                uVar29 = 0x1000;
              }
              else {
                do {
                  lVar24 = lVar16;
                  if (((*(ulong *)(lVar38 + 0x28) != 0) && (lVar24 = lVar38, lVar16 != 0)) &&
                     (lVar24 = lVar16, *(ulong *)(lVar16 + 0x28) < *(ulong *)(lVar38 + 0x28))) {
                    lVar24 = lVar38;
                  }
                  lVar38 = *(long *)(lVar38 + 0x10);
                  lVar16 = lVar24;
                } while (lVar38 != 0);
                if (lVar24 == 0) goto LAB_0010ad5e;
                uVar21 = *(long *)(lVar24 + 0x38) + *(long *)(lVar24 + 0x28);
                uVar29 = 0xffffffffffffffff;
                if (uVar21 < 0xfffffffffffff001) {
                  uVar29 = uVar21 + 0xfff & 0xfffffffffffff000;
                }
              }
              *(ulong *)(local_a8 + 0x30) = uVar29;
              *(ulong *)(local_a8 + 0x28) = uVar29;
              *(byte *)(local_a8 + 0x24) = *(byte *)(local_a8 + 0x24) | 1;
            }
          }
          else {
            uVar12 = *param_2;
            uVar13 = dcgettext(0,"%s: debuglink section already exists",5);
            FUN_0011b660(uVar13,uVar12);
            DAT_0012ca90 = 0;
            local_a8 = 0;
          }
        }
        uVar28 = *(uint *)(param_2 + 0x14);
        if ((uVar28 == 0) || (DAT_0012cad0 == 0 && DAT_0012cac8 == 0)) {
          local_a0 = 0;
          local_90 = (ulong *)0x0;
          local_98 = (long *)0x0;
          uVar21 = local_a0;
        }
        else {
          sVar17 = (ulong)uVar28 * 8;
          local_98 = (long *)xmalloc(sVar17);
          local_58 = local_98;
          bfd_map_over_sections(param_2,FUN_001071c0,&local_58);
          qsort(local_98,(ulong)uVar28,8,FUN_001071d0);
          local_90 = (ulong *)xmalloc(sVar17);
          memset(local_90,0,sVar17);
          uVar21 = 0;
          local_a0 = 0;
          if ((DAT_0012cad0 != 0) && (uVar28 != 1)) {
            plVar15 = local_98;
            puVar32 = local_90;
            do {
              lVar38 = *plVar15;
              if ((*(uint *)(lVar38 + 0x20) & 0x102) == 0x102) {
                uVar29 = *(long *)(lVar38 + 0x30) + *(long *)(lVar38 + 0x38);
                if (uVar29 < *(ulong *)(plVar15[1] + 0x30)) {
                  uVar29 = *(ulong *)(plVar15[1] + 0x30) - uVar29;
                  iVar7 = bfd_set_section_size(param_2,lVar38,*(long *)(lVar38 + 0x38) + uVar29);
                  if (iVar7 == 0) {
                    uVar12 = dcgettext(0,"Can\'t fill gap after section",5);
                    FUN_0011c0d0(0,param_2,*plVar15,uVar12);
                    DAT_0012cb24 = 1;
                    local_a0 = uVar21;
                    break;
                  }
                  *puVar32 = uVar29;
                  if (uVar21 < uVar29) {
                    uVar21 = uVar29;
                  }
                }
              }
              plVar15 = plVar15 + 1;
              puVar32 = puVar32 + 1;
              local_a0 = uVar21;
            } while (local_98 + (ulong)(uVar28 - 2) + 1 != plVar15);
          }
          uVar21 = local_a0;
          if (DAT_0012cac8 != 0) {
            lVar38 = local_98[uVar28 - 1];
            uVar29 = *(long *)(lVar38 + 0x38) + *(long *)(lVar38 + 0x30);
            if (uVar29 < DAT_0012cac0) {
              iVar7 = bfd_set_section_size(param_2,lVar38,DAT_0012cac0 - *(long *)(lVar38 + 0x30));
              if (iVar7 == 0) {
                uVar12 = dcgettext(0,"can\'t add padding",5);
                FUN_0011c0d0(0,param_2,local_98[uVar28 - 1],uVar12);
                DAT_0012cb24 = 1;
              }
              else {
                uVar21 = DAT_0012cac0 - uVar29;
                local_90[uVar28 - 1] = uVar21;
                if (uVar21 <= local_a0) {
                  uVar21 = local_a0;
                }
              }
            }
          }
        }
        local_a0 = uVar21;
        local_b0 = 0;
        if (DAT_0012ca88 != 0) {
          local_b0 = FUN_0010c920(param_1,DAT_0012cb40,local_100,0);
        }
        if (DAT_0012cb0c - 2U < 6) {
LAB_00109b5a:
          if (DAT_0012cb0c != 7) {
LAB_00109b5f:
            bfd_set_error(0);
            bfd_map_over_sections(param_1,FUN_00108e30,DAT_0012cb40);
            iVar7 = bfd_get_error();
            if (iVar7 != 0) {
              DAT_0012cb24 = 1;
              return 0;
            }
          }
          plVar15 = (long *)xmalloc((local_100 + 1 + (long)DAT_0012ca18) * 8);
          local_b8._0_4_ = *(uint *)(param_1 + 0x44) >> 5 & 0x42;
          DAT_0012cb38 = plVar15;
          if (local_100 != 0) {
            plVar34 = DAT_0012cb40 + local_100;
            local_110 = (size_t *)DAT_0012cb40;
            local_100 = 0;
            do {
              iVar7 = DAT_0012ca18;
              plVar2 = (long *)*local_110;
              uVar28 = *(uint *)(plVar2 + 3);
              plVar19 = (long *)plVar2[1];
              lVar38 = plVar2[4];
              if (((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) &&
                 (pcVar39 = (char *)DAT_0012ca20[5], pcVar39 != (char *)0x0)) {
                iVar10 = 0;
                plVar46 = DAT_0012ca20;
                while (iVar11 = strcmp(pcVar39,(char *)plVar19), iVar11 != 0) {
                  iVar10 = iVar10 + 1;
                  plVar46 = (long *)*plVar46;
                  if ((iVar10 == iVar7) || (pcVar39 = (char *)plVar46[5], pcVar39 == (char *)0x0))
                  goto LAB_00109cb0;
                }
                free(pcVar39);
                plVar46[5] = (long)"";
                lVar16 = FUN_00108200(plVar46,param_2);
                plVar15[local_100] = lVar16;
                local_100 = local_100 + 1;
              }
LAB_00109cb0:
              lVar16 = htab_elements(DAT_0012ca30);
              plVar46 = plVar19;
              if ((lVar16 != 0) || (DAT_0012cb48 != (undefined8 *)0x0)) {
                local_50 = 0;
                local_58 = plVar19;
                lVar16 = htab_find(DAT_0012ca30,&local_58);
                if (((lVar16 == 0) || (plVar46 = *(long **)(lVar16 + 8), plVar19 == plVar46)) &&
                   (puVar33 = DAT_0012cb48, (uVar28 & 0x100) != 0)) {
                  for (; plVar46 = plVar19, puVar33 != (undefined8 *)0x0;
                      puVar33 = (undefined8 *)puVar33[3]) {
                    iVar7 = strcmp((char *)*puVar33,(char *)plVar19);
                    if (iVar7 == 0) {
                      plVar46 = (long *)puVar33[1];
                      break;
                    }
                  }
                }
                plVar2[1] = (long)plVar46;
              }
              pcVar39 = DAT_0012ca08;
              cVar42 = *(char *)(*(long *)(param_1 + 8) + 0x1c);
              if ((char)*plVar46 == cVar42) {
                if (DAT_0012ca7c == 0) {
                  if ((DAT_0012ca78 == 0) ||
                     ((((uVar28 & 0x82) == 0 && (lVar38 != 0x12c678)) &&
                      ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)))) goto LAB_00109d39;
LAB_00109f88:
                  plVar46 = (long *)((long)plVar46 + 1);
                  plVar2[1] = (long)plVar46;
                  goto LAB_00109d39;
                }
                if (*(char *)(param_2[1] + 0x1c) == '\0') goto LAB_00109f88;
                if (DAT_0012ca08 != (char *)0x0) {
                  plVar46 = (long *)((long)plVar46 + 1);
                  plVar2[1] = (long)plVar46;
                  goto LAB_00109fa6;
                }
                *(char *)plVar46 = *(char *)(param_2[1] + 0x1c);
                plVar2[1] = (long)plVar46;
              }
              else {
                if (((DAT_0012ca7c == 0) || (*(char *)(param_2[1] + 0x1c) == '\0')) ||
                   (cVar42 != '\0')) {
LAB_00109d39:
                  if (pcVar39 == (char *)0x0) goto LAB_00109da6;
                  sVar17 = strlen(pcVar39);
                  sVar18 = strlen((char *)plVar46);
                  plVar19 = (long *)xmalloc(sVar17 + 2 + sVar18);
                  plVar20 = plVar19;
                  __src = plVar46;
                }
                else {
LAB_00109fa6:
                  sVar17 = strlen(pcVar39);
                  sVar18 = strlen((char *)plVar46);
                  plVar20 = (long *)xmalloc(sVar17 + 2 + sVar18);
                  plVar19 = (long *)((long)plVar20 + 1);
                  *(char *)plVar20 = *(char *)(param_2[1] + 0x1c);
                  __src = plVar46;
                }
                plVar46 = plVar20;
                pcVar39 = DAT_0012ca08;
                if (DAT_0012ca08 != (char *)0x0) {
                  strcpy((char *)plVar19,DAT_0012ca08);
                  sVar17 = strlen(pcVar39);
                  plVar19 = (long *)((long)plVar19 + sVar17);
                }
                strcpy((char *)plVar19,(char *)__src);
                plVar2[1] = (long)plVar46;
              }
LAB_00109da6:
              if (DAT_0012cb0c == 7) goto LAB_00109e38;
              if ((uVar28 & 0x20) == 0) {
                if (((uVar28 & 0x100) == 0) ||
                   ((*(byte *)(**(long **)(plVar2[4] + 0x100) + 0x18) & 0x20) == 0)) {
                  if ((((uint)local_b8 == 0) &&
                      (((uVar28 & 0x82) != 0 || ((*(byte *)(plVar2[4] + 0x21) & 0x10) != 0)))) ||
                     (iVar7 = bfd_decode_symclass(plVar2), iVar7 == 0x49)) {
LAB_0010a060:
                    iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                    if (iVar7 == 0) goto LAB_00109e20;
                  }
                  else if ((((uVar28 & 0x82) == 0) && (lVar38 != 0x12c678)) &&
                          ((*(byte *)(plVar2[4] + 0x21) & 0x10) == 0)) {
                    if ((uVar28 & 4) == 0) {
                      if (((*(int *)(*(long *)(param_1 + 8) + 8) != 2) ||
                          (lVar16 = *(long *)(plVar2[4] + 0xe0), lVar16 == 0)) ||
                         (*(long *)(lVar16 + 0x40) == 0)) {
                        if ((DAT_0012cb0c == 3) || (DAT_0012cb08 == 2)) goto LAB_00109e38;
                        if (DAT_0012cb08 == 1) {
                          iVar7 = bfd_is_local_label(param_1,plVar2);
                          goto joined_r0x0010aafb;
                        }
                      }
                      goto LAB_0010a060;
                    }
                    iVar7 = DAT_0012ca88;
                    if (1 < DAT_0012cb0c - 2U) {
joined_r0x0010aafb:
                      if (iVar7 == 0) goto LAB_0010a060;
                    }
                  }
                  else if (DAT_0012cb0c != 3) goto LAB_0010a060;
                }
                else {
                  iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                  if (iVar7 != 0) {
                    uVar12 = dcgettext(0,
                                       "not stripping symbol `%s\' because it is named in a relocation"
                                       ,5);
                    FUN_0011b660(uVar12,plVar46);
                    DAT_0012cb24 = 1;
                  }
LAB_00109e20:
                  iVar7 = FUN_00108290(plVar46,DAT_0012ca60);
                  if (iVar7 == 0) goto LAB_00109e61;
                }
LAB_00109e38:
                if (((DAT_0012ca10 != 0) && ((uVar28 & 0x4000) != 0)) ||
                   (iVar7 = FUN_00108290(plVar46,DAT_0012ca58), iVar7 != 0)) goto LAB_00109e61;
              }
              else {
                iVar7 = FUN_00108290(plVar46,DAT_0012ca68);
                if (iVar7 != 0) {
                  uVar12 = dcgettext(0,
                                     "not stripping symbol `%s\' because it is named in a relocation"
                                     ,5);
                  FUN_0011b660(uVar12,plVar46);
                  DAT_0012cb24 = 1;
                }
LAB_00109e61:
                iVar7 = FUN_001082f0(plVar2[4]);
                if (iVar7 == 0) {
                  if (((uVar28 & 2) != 0) &&
                     ((DAT_0012ca14 != 0 || (iVar7 = FUN_00108290(plVar46,DAT_0012ca38), iVar7 != 0)
                      ))) {
                    *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffd | 0x80;
                  }
                  if (lVar38 != 0x12c678) {
                    if (((uVar28 & 0x82) != 0) &&
                       (((iVar7 = FUN_00108290(plVar46,DAT_0012ca50), iVar7 != 0 ||
                         ((lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0 &&
                          (iVar7 = FUN_00108290(plVar46,DAT_0012ca40), iVar7 == 0)))) ||
                        ((DAT_0012ca70 != 0 &&
                         ((((lVar38 = *plVar2, lVar38 != 0 &&
                            (*(int *)(*(long *)(lVar38 + 8) + 8) == 5)) &&
                           (*(long *)(lVar38 + 0xf8) != 0)) &&
                          ((*(byte *)((long)plVar2 + 0x49) & 3) - 1 < 2)))))))) {
                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xffffff7d | 1;
                    }
                    if (((uVar28 & 1) != 0) &&
                       (iVar7 = FUN_00108290(plVar46,DAT_0012ca48), iVar7 != 0)) {
                      *(uint *)(plVar2 + 3) = *(uint *)(plVar2 + 3) & 0xfffffffe | 2;
                    }
                  }
                  plVar15[local_100] = (long)plVar2;
                  local_100 = local_100 + 1;
                }
              }
              local_110 = local_110 + 1;
            } while ((size_t *)plVar34 != local_110);
          }
          if ((DAT_0012ca20 != (long *)0x0) && (0 < DAT_0012ca18)) {
            lVar38 = 0;
            plVar34 = DAT_0012ca20;
            do {
              pcVar39 = (char *)plVar34[5];
              if (pcVar39 == (char *)0x0) {
                lVar16 = FUN_00108200(plVar34,param_2);
                plVar15[local_100] = lVar16;
                local_100 = local_100 + 1;
              }
              else if (*pcVar39 != '\0') {
                uVar12 = dcgettext(0,"\'before=%s\' not found",5);
                    /* WARNING: Subroutine does not return */
                FUN_0011b5c0(uVar12,pcVar39);
              }
              lVar38 = lVar38 + 1;
              plVar34 = (long *)*plVar34;
            } while (lVar38 < DAT_0012ca18);
          }
          iVar7 = DAT_0012ca88;
          plVar15[local_100] = 0;
          local_100 = local_100 & 0xffffffff;
          if ((iVar7 != 0) && (local_b0 != 0)) {
            iVar7 = *(int *)((undefined8 *)param_2[1] + 1);
            if ((iVar7 != 2) && (iVar7 != 5)) {
              uVar12 = *(undefined8 *)param_2[1];
              uVar13 = dcgettext(0,"don\'t know how to write debugging information for %s",5);
              FUN_0011c0d0(0,param_2,0,uVar13,uVar12);
              DAT_0012cb24 = 1;
              return 0;
            }
            iVar7 = FUN_0011aff0(param_2,local_b0,&local_88,local_78,&local_80,&local_58);
            if (iVar7 == 0) {
              DAT_0012cb24 = 1;
              return 0;
            }
            lVar38 = bfd_make_section_with_flags(param_2,".stab",0x2108);
            lVar16 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);
            if ((((lVar38 == 0) || (lVar16 == 0)) ||
                (iVar7 = bfd_set_section_size(param_2,lVar38,local_78[0]), iVar7 == 0)) ||
               (iVar7 = bfd_set_section_size(param_2,lVar16,local_58), iVar7 == 0)) {
              pcVar39 = "can\'t create debugging section";
LAB_0010a991:
              uVar12 = dcgettext(0,pcVar39,5);
              FUN_0011c0d0(0,param_2,0,uVar12);
              DAT_0012cb24 = 1;
              return 0;
            }
            *(undefined4 *)(lVar38 + 0x70) = 2;
            *(undefined4 *)(lVar16 + 0x70) = 0;
            iVar7 = bfd_set_section_contents(param_2,lVar38,local_88,0,local_78[0]);
            if ((iVar7 == 0) ||
               (iVar7 = bfd_set_section_contents(param_2,lVar16,local_80,0,local_58), iVar7 == 0)) {
              pcVar39 = "can\'t set debugging section contents";
              goto LAB_0010a991;
            }
          }
        }
        else {
          if (DAT_0012ca70 != 0 || DAT_0012cb08 != 0) goto LAB_00109b5f;
          lVar38 = htab_elements(DAT_0012ca68);
          if ((((((lVar38 != 0) || (lVar38 = htab_elements(DAT_0012ca58), lVar38 != 0)) ||
                (lVar38 = htab_elements(DAT_0012ca50), lVar38 != 0)) ||
               ((lVar38 = htab_elements(DAT_0012ca48), lVar38 != 0 ||
                (lVar38 = htab_elements(DAT_0012ca40), lVar38 != 0)))) ||
              (lVar38 = htab_elements(DAT_0012ca38), lVar38 != 0)) ||
             (((lVar38 = htab_elements(DAT_0012ca30), lVar38 != 0 || (DAT_0012ca08 != (char *)0x0))
              || ((DAT_0012cb48 != (undefined8 *)0x0 ||
                  ((((((DAT_0012cafc != 0 || DAT_0012caf8 != 0) || DAT_0012ca88 != 0) ||
                     DAT_0012ca7c != 0) || DAT_0012ca78 != 0) || DAT_0012ca14 != 0) ||
                   DAT_0012ca18 != 0)))))) goto LAB_00109b5a;
        }
        bfd_set_symtab(param_2,DAT_0012cb38,local_100 & 0xffffffff);
        bfd_map_over_sections(param_1,FUN_00108b90,param_2);
        bfd_map_over_sections(param_1,FUN_00108850,param_2);
        for (puVar33 = DAT_0012caa8; puVar44 = DAT_0012caa0, puVar33 != (undefined8 *)0x0;
            puVar33 = (undefined8 *)*puVar33) {
          iVar7 = bfd_set_section_contents(param_2,puVar33[5],puVar33[4],0,puVar33[3]);
          if (iVar7 == 0) {
LAB_00109aa8:
            FUN_0011c0d0(0,param_2,puVar33[5],0);
            return iVar7;
          }
        }
        for (; puVar44 != (undefined8 *)0x0; puVar44 = (undefined8 *)*puVar44) {
          uVar12 = *(undefined8 *)(puVar44[5] + 0x68);
          iVar7 = bfd_set_section_contents(param_2,uVar12,puVar44[4],0,puVar44[3]);
          if (iVar7 == 0) {
            FUN_0011c0d0(0,param_2,uVar12,0);
            return 0;
          }
        }
        if (DAT_0012cb20 != 0) {
          lVar38 = bfd_get_section_by_name(param_2,".gnu.build.attributes");
          if (((lVar38 == 0) || (DAT_0012cb20 == 0)) ||
             ((*(int *)(param_2[1] + 8) != 5 ||
              (iVar7 = FUN_00107fb0(lVar38,lVar38 + 0xe0), iVar7 == 0)))) {
            if (DAT_0012c508 == 0) {
              uVar12 = dcgettext(0,"could not find any mergeable note sections",5);
              FUN_0011c0d0(0,param_2,lVar38,uVar12);
            }
          }
          else {
            iVar7 = bfd_set_section_contents(param_2,lVar38,DAT_0012cb18,0,DAT_0012cb10);
            if (iVar7 == 0) {
              uVar12 = dcgettext(0,"error: failed to copy merged notes into output",5);
              FUN_0011c0d0(0,param_2,lVar38,uVar12);
              return 0;
            }
          }
          free(DAT_0012cb18);
          DAT_0012cb18 = (void *)0x0;
          DAT_0012cb20 = 0;
        }
        if ((DAT_0012ca90 != 0) &&
           (iVar7 = bfd_fill_in_gnu_debuglink_section(param_2,local_a8), lVar38 = DAT_0012ca90,
           iVar7 == 0)) {
          uVar12 = dcgettext(0,"cannot fill debug link section `%s\'",5);
          FUN_0011c0d0(0,param_2,0,uVar12,lVar38);
          return 0;
        }
        if (DAT_0012cad0 != 0 || DAT_0012cac8 != 0) {
          uVar21 = 0x2000;
          if (local_a0 < 0x2001) {
            uVar21 = local_a0;
          }
          plVar15 = (long *)xmalloc(uVar21);
          lVar38 = (ulong)DAT_0012cacc * 0x101010101010101;
          uVar28 = (uint)uVar21;
          if (uVar28 < 8) {
            if ((uVar21 & 4) == 0) {
              if ((uVar28 != 0) && (*(char *)plVar15 = (char)lVar38, (uVar21 & 2) != 0)) {
                *(short *)((long)plVar15 + ((uVar21 & 0xffffffff) - 2)) = (short)lVar38;
              }
            }
            else {
              *(int *)plVar15 = (int)lVar38;
              *(int *)((long)plVar15 + ((uVar21 & 0xffffffff) - 4)) = (int)lVar38;
            }
          }
          else {
            *plVar15 = lVar38;
            *(long *)((long)plVar15 + ((uVar21 & 0xffffffff) - 8)) = lVar38;
            plVar34 = (long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8);
            for (uVar21 = (ulong)(((int)plVar15 -
                                  (int)(long *)((ulong)(plVar15 + 1) & 0xfffffffffffffff8)) + uVar28
                                 >> 3); uVar21 != 0; uVar21 = uVar21 - 1) {
              *plVar34 = lVar38;
              plVar34 = plVar34 + (ulong)bVar51 * -2 + 1;
            }
          }
          if (*(int *)(param_2 + 0x14) != 0) {
            puVar32 = local_90 + (ulong)(*(int *)(param_2 + 0x14) - 1) + 1;
            do {
              uVar21 = *local_90;
              if (uVar21 != 0) {
                lVar38 = *local_98;
                lVar16 = *(long *)(lVar38 + 0x38) - uVar21;
                while( true ) {
                  uVar29 = 0x2000;
                  if (uVar21 < 0x2001) {
                    uVar29 = uVar21;
                  }
                  iVar7 = bfd_set_section_contents(param_2,lVar38,plVar15,lVar16,uVar29);
                  if (iVar7 == 0) {
                    FUN_0011c0d0(0,param_2,*local_98,0);
                    return 0;
                  }
                  lVar16 = lVar16 + uVar29;
                  uVar21 = uVar21 - uVar29;
                  if (uVar21 == 0) break;
                  lVar38 = *local_98;
                }
              }
              local_90 = local_90 + 1;
              local_98 = local_98 + 1;
            } while (puVar32 != local_90);
          }
        }
        iVar7 = (**(code **)(param_2[1] + 0x138))(param_1,param_2);
        if (iVar7 != 0) {
          if ((DAT_0012cab8 != 0) &&
             (iVar7 = bfd_alt_mach_code(param_2), lVar38 = DAT_0012cab8, iVar7 == 0)) {
            uVar12 = dcgettext(0,"this target does not support %lu alternative machine codes",5);
            FUN_0011b660(uVar12,lVar38);
            if (*(int *)(param_2[1] + 8) != 5) {
              uVar12 = dcgettext(0,"ignoring the alternative value",5);
              FUN_0011b660(uVar12);
              return 1;
            }
            uVar12 = dcgettext(0,"treating that number as an absolute e_machine value instead",5);
            FUN_0011b660(uVar12);
            *(short *)(param_2[0x1f] + 0x3a) = (short)DAT_0012cab8;
          }
          return 1;
        }
        uVar12 = dcgettext(0,"error copying private BFD data",5);
        iVar7 = 0;
        goto LAB_00109580;
      }
      uVar28 = DAT_0012ca84;
      if ((DAT_0012ca84 == 1) || (uVar28 = DAT_0012ca84 & 1, uVar28 == 0)) {
        if (DAT_0012ca80 == 0) goto LAB_00109056;
        uVar12 = FUN_0011bfe0(param_1,DAT_0012ca80,uVar28,0);
        pcVar39 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      }
      else {
        uVar12 = FUN_0011bfe0(param_1);
        pcVar39 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
      }
    }
LAB_0010952f:
    uVar13 = dcgettext(0,pcVar39,5);
    iVar7 = 0;
    FUN_0011b660(uVar13,uVar12);
  }
  return iVar7;
LAB_0010b3bc:
  if ((undefined1 *)((long)pvVar26 + sVar17) <= puVar30) goto LAB_0010b3c1;
  *puVar30 = (char)uVar29;
  if (uVar29 == 0) goto LAB_0010b3c1;
  uVar29 = uVar29 >> 8;
  puVar30 = puVar30 + 1;
  goto LAB_0010b3bc;
LAB_0010b3c1:
  psVar6[0xb] = 0;
  bVar49 = true;
  goto LAB_0010b255;
}

